自家製の WCF サービスを呼び出すと、「メッセージ バージョンが認識されません」というエラーが表示されます。このサービスは、F5 ロード バランサーの背後にある DMZ 内にあります。F5 は SSL 証明書を管理し、メッセージを HTTP (HTTPS ではなく) 経由でサーバーに転送します。F5 経由でルーティングしない内部サーバーに展開された同じサービスは正常に動作します。
途中でメッセージのバージョンを調べたい。サーバー スタック トレースは、IIS が WCF フレームワークの内部で .NET コードにハンドオフし、メッセージをコードに転送する前に爆発しているように見えます。
クライアント側の Fiddler とサーバーの IIS ログで遊んでいますが、どこにでもつながるメッセージの詳細が見つからないようです。サービス トレース ログ (以下の構成) も構成しましたが、結果が追加されていません。ツール、エラーの原因、またはツールが私に示していることを理解していない可能性があるその他の提案はありますか?
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "c:\Temp\Traces.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
更新 - 解決されたコアの問題 私が抱えていた特定の問題は、F5 ロード バランサーが期待どおりにサーバーにリダイレクトするだけでなく、それ自体にリダイレクトすることに基づいていることがわかりました。途中でリクエストの状態を追跡する方法についてもっと知ることは、まだ役立つと思います。