如何在IIS中拦截WCF请求

时间:2012-12-05 16:30:42

标签: wcf

在调用本地生成的WCF服务时,我收到“无法识别的消息版本”错误。该服务位于FZ负载平衡器后面的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负载均衡器重定向回自身以及按预期方式进入服务器。我认为在此过程中了解如何跟踪请求状态可能仍然有用。

1 个答案:

答案 0 :(得分:1)

以下是一些要检查的事项:

  1. wcf进程是否具有对c:\ temp目录的写访问权限? (ProcessMonitor对于验证此类事情非常有用:http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

  2. 听起来这可能是一个序列化问题,也许可以尝试在System.Runtime.Serialization上添加一个监听器,如下所述:http://msdn.microsoft.com/en-us/library/ms733025.aspx