私は、私のワーカーロールで未処理の例外をすべてキャッチしようとしています。私はtry
- catch
ブロックをRun()
メソッド(推奨here)に入れてみましたが、成功しませんでした。Windows Azure(Worker)ロールで未処理の例外をキャッチする方法
public override void Run()
{
try
{
base.Run();
}
catch (Exception ex)
{
Trace.TraceError("Unhandled Exception: {0}", ex);
throw ex;
}
}
役割は、WCFサービスをホストするので、Run()
方法の内部には他のロジックは存在しません。このレベルで例外をキャッチする可能性はありますか? 1
アップデートは、問題を明確にするには、次の役割の自己は、一部の操作は、バックグラウンド処理されている(OnStart()
で初期化)WCFサービスをホストします。サービスが呼び出され、そのメソッドが予期しない例外をスローすると、そのメソッドをキャッチしてログに書き込むことが好きです。
ソリューション: は明らかに、それは通常のC#アプリケーションでのようなものです: ちょうど役割のOnStart()
内でこの
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
ようUnhandledException
イベントにハンドラを追加します。私はAzureにとても集中していましたが、結局このことができないと思っていました。私はそれを試したこともありませんでした:-)
単純に 'new Exception(" Testing ");をスローするダミーのワーカーロールでこれを試してください。 –
ロールはWCFサービスをホストしているので、実際にはRun()メソッドの中には何もありません。それを言及しているはずです。 – gumo
@gumo:ok、base.Runの前にスローを追加します。 –