2017-01-25 5 views
2

私のWCFアプリケーションでは、エラーが発生したときとエラーが発生しなかったときに、の一部の高度な監視にIDispatchMessageInspectorが使用されます。IDispatchMessageInspector内で例外オブジェクトを取得するにはどうすればよいですか?

IDispatchMessageInspector.BeforeSendReplyメソッドにアクセスしたときに、例外の種類に基づいて特定のアクションを実行する必要があるため、サービスで発生した例外を取得する方法を探しています。

私はではありません私は既にカスタムでIErrorHandlerとしているので、\ loggingエラーを探しています。

は私がIErrorHandlerにいるときOperationContextに例外を追加し、私は戻ってIDispatchMessageInspectorでんだけど、私は内蔵のものを好むとき、単純にそれを読んで考えた。

どのような方法私はあります私がIDispatchMessageInspector.BeforeSendReplyメソッドにいるときに例外をフェッチできますか?おそらくOperationContextのどこかに?

答えて

0

IDispatchMessageInspectorインタフェースは、それがクライアントに返送される前に、それらが対応する応答メッセージだけでなく、派遣されている前に終点に到着するメッセージを表示することができます。

便利かもしれませんBeforeSendReply()方法について気づいべきポイントのカップル:メッセージがに派遣された操作はワンウェイ 操作した場合

  • 、このメソッドは、 の実行が終了したときに、IDispatchMessageInspector実装の のWCFランタイムによって引き続き呼び出されます。ただし、返信メッセージの を表す「返信」引数はnullになるため、メッセージを操作する前にそれを確認してください。
  • 応答メッセージのIsFault プロパティをチェックすることで、メッセージ がディスパッチされて例外/障害が発生した場合、実装で検出できます。 操作の場合でも同様です(クライアント側では表示されませんが、サーバ側の ディスパッチャはメッセージ管理者に正しく通知します)
+0

回答ありがとうございますが、あなたは私の質問に答えていません。私は、メッセージにエラーがあるかどうかを確認できます。呼び出しが発生すると、例外インスタンスが必要です。IDispatchMessageInspectorの内部に必要です。なぜなら、成功と失敗のメッセージに対して実行する監視ロジックがあるからです。 –

関連する問題