Global.asax に次のコードを持つ WCF サービスがあります。
protected void Application_Start(object sender, EventArgs e)
{
// Make sure that any exceptions that we don't handle at least get logged.
AppDomain.CurrentDomain.UnhandledException += LogUnhandledException;
}
private void LogUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Log.Error.LogException("UnhandledException", e.ExceptionObject as Exception);
}
アイデアは、少なくとも未処理のすべての例外をログに記録することです。
しかし、それは決して呼び出されていないようです。サービス操作の 1 つで 0 による除算を実行しようとしましたが、例外が発生した後にサービスを停止するだけです。
int zero = 0;
int result = 100 / zero;
LogUnhandledException メソッドが呼び出されることはありません。
IIS とデバッガーでの実行の両方でこれを試しました。
このイベントを WCF サービスで機能させるにはどうすればよいですか?