Причина, по которой событие UnhandledException
на текущем домене приложений не вызывается, заключается в том, как выполняются службы.
- Пользователь отправляет команду запуска из диспетчера управления службами Windows (SCM).
- Команда получена реализацией
ServiceBase
платформы и отправлена методу OnStart
.
- Вызывается метод
OnStart
.
Любое исключение, которое выдается OnStart
, обрабатывается в базовом классе , регистрируется в журнале событий и преобразуется в код состояния ошибки, возвращаемый в SCM. Таким образом, исключение никогда не распространяется на обработчик необработанных исключений AppDomain.
Я думаю, вы обнаружите, что необработанное исключение, выброшенное из рабочего потока в вашем сервисе , будет перехвачено обработчиком необработанного исключения AppDomain.