2011-06-13 29 views
11

我有一個WCF服務,有兩個端點。一個使用basicHttpBinding,另一個使用netTcpBinding。這是我的配置...無法獲取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://請求顯示。我能做些什麼來看到這種流量?

回答

14

Fiddler是一個HTTP代理,因此它只會捕獲使用HTTP協議的請求 - 它不會捕獲使用套接字直接創建的請求。您可以使用Network Monitor或其他一些低級捕獲工具來做到這一點,但是界面並不像您可能習慣使用Fiddler那樣好。

此外,正如Ladislav Mrnka的另一個回答中指出的那樣,您將查看.NET Message Framingbinary XML encoding的二進制字節,因此除非您熟悉這些字節,否則大部分捕獲將看起來像是亂碼。

8

Fiddler是HTTP嗅探器而不是TCP嗅探器。您只能在fiddler中看到HTTP和HTTPS通信。如果要查看通過TCP傳遞的消息,則必須使用另一個在較低級別上工作的工具。例如WireShark,但要做好準備,只會看到一些二進制數據。

3

Fiddler是一個HTTP調試器。如果你不使用HTTP,比如使用netTcpBinding,你將無法使用它來獲取流量。你可以嘗試Wireshark或類似的東西。