Возможно ли использовать обработчик UnhandledException в службе Windows?Обработчик UnhandledException в .Net службе Windows
Обычно я использую специально созданный компонент обработки исключений, который выполняет ведение журнала, домашний телефон и т. Д. Этот компонент добавляет обработчик к System.AppDomain.CurrentDomain.UnhandledException, но насколько я могу судить об этом, ничего не добиться это служба Windows, так что я в конечном итоге с этим рисунком в моей 2 (или 4) точке входа Услуги:
Protected Overrides Sub OnStart(ByVal args() As String)
' Add code here to start your service. This method should set things
' in motion so your service can do its work.
Try
MyServiceComponent.Start()
Catch ex As Exception
'call into our exception handler
MyExceptionHandlingComponent.ManuallyHandleException (ex)
'zero is the default ExitCode for a successfull exit, so if we set it to non-zero
ExitCode = -1
'So, we use Environment.Exit, it seems to be the most appropriate thing to use
'we pass an exit code here as well, just in case.
System.Environment.Exit(-1)
End Try
End Sub
есть ли способ моего пользовательский компонент Обработки исключений может справиться с этим лучше, так что я не должен заполнить мой OnStart с беспорядочной обработкой обработки исключений?
Я обнаружил, что событие UnhandledException в службе получает исключения в других потоках, если вы подключаете обработчик событий очень рано. Я подключил его в конструкторе службы, а не в методе OnStart(). Это также удаляет уродливое исключение из вашего OnStart(). – saille 2010-02-23 23:19:46