无法在 Fiddler 中显示 netTcpBinding 请求

Posted

技术标签:

【中文标题】无法在 Fiddler 中显示 netTcpBinding 请求【英文标题】:Can't get netTcpBinding requests to show up in Fiddler 【发布时间】:2011-09-14 06:20:00 【问题描述】:

我有一个有两个端点的 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:// 请求。我该怎么做才能看到这种流量?

【问题讨论】:

【参考方案1】:

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

此外,正如 Ladislav Mrnka 在另一个答案中所指出的,您将查看 .NET Message Framing 和 binary XML encoding 的二进制字节,因此除非您熟悉它们,否则大多数捕获看起来像胡言乱语。

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

如果您对实际消息的外观感兴趣,请尝试使用 Service Trace。

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

【讨论】:

以上是关于无法在 Fiddler 中显示 netTcpBinding 请求的主要内容,如果未能解决你的问题,请参考以下文章

fiddler抓包乱码是怎么回事

我电每次打开fiddler抓包后,wifi就连不上,然后显示有限是访问权限,怎么回事,怎么办?

Fiddler 添加IP显示响应时间功能

fiddler与浏览器抓包操作

求助windows10无法使用fiddler手机抓包

fiddler抓包一直显示描述文件失败,弄了一天了,跪求解