调用本地 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 负载均衡器重定向回自身以及按预期重定向到服务器上。我认为了解更多有关如何跟踪请求状态的信息可能仍然有用。