【问题标题】:Can't get netTcpBinding requests to show up in Fiddler无法在 Fiddler 中显示 netTcpBinding 请求
【发布时间】: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:// 请求。我该怎么做才能看到这种流量?

【问题讨论】:

    标签: c# wcf fiddler nettcpbinding


    【解决方案1】:

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

    此外,正如 Ladislav Mrnka 在另一个答案中所指出的,您将查看 .NET Message Framingbinary 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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-06-17
            • 1970-01-01
            • 2023-03-24
            • 2012-07-05
            • 2022-07-01
            • 1970-01-01
            相关资源
            最近更新 更多