Необработанное исключение в службе Windows - PullRequest
6 голосов
/ 02 августа 2009

Я использую system.timer в приложении службы Windows (c #) и добавил:

AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += 
       new UnhandledExceptionEventHandler(MyExceptionHandler);

Для обработки моих исключений работает ли это в службе Windows, так как кажется, что она не работает? У кого-нибудь есть альтернативные идеи?

Ответы [ 2 ]

4 голосов
/ 02 августа 2009

Этот механизм будет работать для захвата необработанных исключений в любой среде, включая службы Windows. Однако существуют некоторые ограничения на то, какие исключения могут быть обработаны таким образом. Например, исключение StackOverFlowException может быть необработанным, но по своей природе вы никогда не увидите, чтобы оно проходило через обработчик UnhandledException.

Почему вы думаете, что это не работает? Вы пытались подключиться к процессу с помощью отладчика, включающего исключения первого шанса и посмотреть, что происходит?

1 голос
/ 02 августа 2009

Почему у вас есть необработанное исключение в службе? Что является исключением? В некоторых исключениях «особое поведение» (, а другая ссылка здесь для .NET 4 изменяет исключения из поврежденного состояния ).

Кроме того, что вы пытаетесь сделать в обработчике? Возможно, действия, которые вы пытаетесь выполнить в обработчике, ограничены при запуске в качестве службы.

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