3

グローバルエラーハンドラーなどに関する質問がたくさんありますが、どれも私が必要としているものではありません。

.config を介してすべてのエンドポイントまたはサービスにアタッチする動作を追加する方法はありますか?

*特にやりたいことは、すべての SOAP 要求/応答をキャプチャしてログに記録するロガーを追加することです。ただし、手動で各サービスに追加するのではなく、すべてのサービスにその動作を自動的に追加することをお勧めします。

私は動作拡張機能を調べ、それが解決策になると考えましたが、いいえ、すべてのサービスに動作を追加する必要があります.*

4

2 に答える 2

1

この種の問題を取り除くために、メッセージインスペクターを用意することは常に良いことです。Message Inspector は、メッセージ検証で失敗した場合でも、サービスのすべての着信要求と発信応答を追跡するために適切に機能する WCF 拡張機能の実装であり、それに応じてトラップして動作するオプションがあります。より正確には、メッセージ インスペクターは、既存のサービスを変更することなく、構成ファイルを使用して構成できます。

メッセージ インスペクターとその実装の詳細については、こちらを参照してください

お役に立てれば !!

ハッピーコーディング:)

于 2013-10-28T07:35:34.957 に答える
1

machine.configファイルの<commonBehaviors>セクションを使用して、マシン内のすべてのサービスに適用される動作を定義できる場合があります。machine.config を更新することは、問題を解決するためにバズーカ砲を使用するようなものであることに注意してください (多くのシナリオでは、グループ ポリシーによって禁止されている可能性があります)。したがって、すべてのシナリオで機能するとは限りません。また、ビヘイビアー拡張機能が (machine.config にも) 登録されていること、および WCF で使用しているアプリケーションが拡張機能で参照されているアセンブリに (おそらく GAC 経由で) アクセスできることを確認する必要があります。

もう 1 つの方法は、サービス ホストを作成するために共通ライブラリを使用し (自己ホスト型サービスの場合は直接、または Web ホスト型サービスの場合はサービス ホスト ファクトリを介して)、そのライブラリを使用することです (これにより、インスペクターが追加されます)。

于 2013-03-21T22:16:58.883 に答える