无法在Fiddler中显示netTcpBinding请求

11

我有一个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 来执行此操作。我可以在 Fiddler 中看到 basicHttpBinding 请求,但是我无法使 net.tcp:// 请求显示出来。我该怎么做才能看到这个流量呢?

4个回答

14

Fiddler是一个HTTP代理,因此它只会捕获使用HTTP协议的请求 - 它不会捕获直接使用socket进行的请求。您可以使用Network Monitor或其他一些低级别的捕获工具来实现这一点,但界面不如您使用Fiddler时那样好用。

此外,正如Ladislav Mrnka在另一个回答中指出的那样,您将查看.NET消息帧二进制XML编码的二进制字节,因此除非您熟悉它们,否则大部分捕获看起来都像无意义的话。


8

Fiddler是HTTP抓包工具,不是TCP抓包工具。你只能在Fiddler中查看HTTP和HTTPS通讯内容。如果你想要查看TCP传输的信息,你需要使用另一个可以在更低层次上工作的工具,例如WireShark,但要准备好你只能看到一些二进制数据。


3

Fiddler是一个HTTP调试器。如果您不使用HTTP,例如使用netTcpBinding,则无法使用它捕获流量。您可以尝试使用Wireshark或类似工具。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接