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

kav*_*vun 11 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>
Run Code Online (Sandbox Code Playgroud)

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

car*_*ira 14

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

另外,正如Ladislav Mrnka的另一个答案中所指出的,你将看到.NET消息框架二进制XML编码的二进制字节,所以除非你熟悉它们,否则大多数捕获看起来都会像乱码.


Lad*_*nka 8

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