私は、HTTPリクエストを処理する小さなWCFサービスを開発しました。私はたまたま、すべての障害を認識することにしたいすべての内部サーバーエラーをWindowsイベントログに挿入する
:契約から500内部サーバーエラーが発生し
- すべてが(私はAを書いたバインディングビューからて、CommunicationExceptionが発生し
- すべてを表示しますカスタムものも標準のものを使用しています)
エラーは、Windowsイベントログに記録する必要があります。
私の質問は:
- は、すべての例外をキャプチャし、イベントログにそれらを印刷し、全体WCFスタックのための中央のイベントハンドラを追加するために、いくつかの可能性はありますか?
ご挨拶。
は、私は、カスタムの結合チャネルのにReceiveRequestメソッドに「(エラーが起こった「)」の新しいて、CommunicationExceptionを投げる」を挿入しました。カスタムエラーハンドラは、 "foreach(ChannelDispatcher cd in h.ChannelDispatchers){cd.ErrorHandlers.Add(new MyErrorHandler());}を介して挿入されましたが、私のカスタムエラーハンドラはいつでも呼び出されません。 – Etan
私は正しく覚えていれば、サーバー側のディスパッチャがサービスオブジェクトのメソッドにメッセージをディスパッチした後でIErrorHandlerインターフェイスが起動するだけです。それ以前のものはクライアントに直接返されます –
"新しいCommunicationExceptionをスローする("エラー ")"は契約の実装にも反映されません。ディスパッチ前のエラーハンドラではなく、ディスパッチ後のエラーハンドラではない場合、エラーハンドラによってどのような例外が処理されますか? – Etan