4

複数のタスクを実行する .net c# Windows サービスを作成しました。例外処理を含めましたが、Windows サービスで未処理の例外をキャッチするグローバル ハンドラを設定したいのですが、どうすればよいですか?

4

1 に答える 1

6

例外処理を含めましたが、Windowsサービスで未処理の例外をキャッチするグローバルハンドラーを設定したいと思います

を使用できますAppDomain.UnhandledException。ただし、あなたの場合、サービスへの呼び出し全体をtry/catchブロックでラップすることができます。この未処理の例外で何をする予定かについての詳細を提供していないので、この場合の正しいパスは、サービスをクラッシュさせることだと思います。

try
{
   MainCallToYourService();
}
catch (Exception)
{
   //it's probably too late to do anything useful here, try to log and die
}

ただし、これを行う際の問題は、多くの場合、このイベントが発生するまでにアプリケーションの状態が破損していることです。あなたの最善の策は、それを記録して出て行くことです。

于 2012-05-15T22:24:35.133 に答える