Windows サービスで UnhandledException ハンドラを使用することは可能ですか?
通常、私は、ログ記録、家への電話などを行うカスタム ビルドの例外処理コンポーネントを使用します。このコンポーネントは、System.AppDomain.CurrentDomain.UnhandledException にハンドラーを追加しますが、私が知る限り、これは何も達成せず、Windows サービスに勝てません。最終的に、2 つ (または 4 つ) の Service エントリ ポイントで次のパターンになります。
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 を面倒な例外処理配管で埋める必要がないように、カスタム例外処理コンポーネントがこれをより適切に処理できる方法はありますか?