无法获取在Fiddler中显示的netTcpBinding请求

时间:2011-06-13 21:30:32

标签: c# wcf fiddler nettcpbinding

我有一个有两个端点的WCF服务。一个使用basicHttpBinding,另一个使用netTcpBinding。这是我的配置......

<services>
      <service name="SomeService.Service">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration=""
          name="EndPointHttp" contract="SomeService.IService" />
        <endpoint address="" binding="netTcpBinding" bindingConfiguration=""
          name="EndPointTcp" contract="SomeService.IService" />
        </service>
</services>

然而,当我使用该服务时,我试图比较两个请求之间的差异。所以我正在运行小提琴手来做这件事。我可以在Fiddler中看到basicHttpBinding请求,但我无法显示net.tcp://请求。我该怎么做才能看到这种流量?

4 个答案:

答案 0 :(得分:14)

Fiddler是 HTTP 代理,因此它只会捕获使用HTTP协议的请求 - 它不会直接捕获使用套接字发出的请求。您可以使用Network Monitor或其他一些低级别捕获工具来执行此操作,但界面不如您可能习惯使用Fiddler的界面。

另外,正如Ladislav Mrnka在另一个答案中指出的那样,你会看到.NET Message Framingbinary XML encoding的二进制字节,所以除非你熟悉它们的大多数捕获将看起来像胡言乱语。

答案 1 :(得分:8)

Fiddler是HTTP嗅探器,而不是TCP嗅探器。您只能在fiddler中看到HTTP和HTTPS通信。如果要查看通过TCP传递的消息,则必须使用其他工具在较低级别上工作。例如WireShark,但要做好准备,你只会看到一些二进制数据。

答案 2 :(得分:3)

Fiddler是一个 HTTP 调试器。如果您没有使用HTTP,例如使用netTcpBinding,您将无法使用它捕获流量。您可以尝试Wireshark或类似的东西。

答案 3 :(得分:2)

如果您对实际消息的外观感兴趣,请尝试使用服务跟踪。

https://msdn.microsoft.com/en-us/library/ms732023%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396