Могу ли я попросить среду выполнения Azure не перезапускать мою роль, если OnStart () выдает исключение? - PullRequest
0 голосов
/ 13 июля 2011

Моя веб-роль Azure в настоящее время содержит множество ошибок и исключений из OnStart().После возникновения исключения среда выполнения Azure снова запускает роль.Это не удобно для меня - роль OnStart() работает точно в одной точке и снова падает, и это продолжается вечно.Я бы предпочел, чтобы он остановился после его сбоя.

Могу ли я как-то попросить среду выполнения Azure не перезапускать мою роль после сбоя OnStart() с исключением?

Ответы [ 3 ]

2 голосов
/ 13 июля 2011

Ну, вы можете сделать попытку / поймать свой код, а затем заснуть навсегда в ловушке.

Но нет, если вы выбросите необработанное исключение или ваш процесс завершится другим способом, Windows Azure попытается перезапуститьЭто.Нет способа изменить это поведение.

1 голос
/ 14 июля 2011

Это кажется немного сложным делом, но вы можете попробовать использовать API управления и остановить всю роль в улове попытки.

Лично я думаю, что гораздо проще просто использовать Thread.Sleep(Timeout.Infinite), как предлагает smarx

1 голос
/ 13 июля 2011

Smarx, конечно, прав, но есть шаблоны проектирования, в которых вы запускаете собственные потоки веб-ролей, а затем перезапускаете их, если вызывается любое необработанное исключение. Этот шаблон также даст вам больше контроля над рабочими ролями, а также когда их перезапускать, а когда нет. Смотрите здесь для одной такой реализации:

http://www.31a2ba2a -b718-11dc-8314-0800200c9a66.com / 2010/12 / погонная многодисковая нить-на-windows.html

...