Получение приложения .Net для закрытия при сбое - PullRequest
3 голосов
/ 10 июня 2011

У меня есть приложение .NET 4, работающее на Windows Server 2008 R2, в котором я использую отдельный запущенный процесс для управления его жизненным циклом (т. Е. Обнаружение включения / неожиданного выключения / перезагрузки).Это прекрасно работает для типичных условий.Однако, когда приложение выдает исключение, Windows открывает окно отладки, предлагающее отладку приложения.Я просто хочу, чтобы приложение аварийно завершало работу, чтобы исполнитель процессов мог обнаруживать аварийное завершение и соответствующим образом управлять им.

Как разрешить закрытию приложения исключение?

Ответы [ 3 ]

4 голосов
/ 10 июня 2011

Добавьте обработчик к Application.ThreadException и в обработчике зарегистрируйте событие, затем красиво выйдите.

Также добавьте обработчик события в AppDomain.CurrentDomain.UnhandledException.

Необработанные исключения MSDN

Редактировать: удален бит о флаге Handled .. спасибо, Алекс

1 голос
/ 10 июня 2011

Добавление этой строки не даст отобразить «окно отладки».

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
0 голосов
/ 10 июня 2011

Вы должны добавить глобальный обработчик исключений или try / catch, чтобы очистить ресурсы, зарегистрировать ошибку и нормально закрыть приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...