2011-06-13 12 views
11

Ho un servizio WCF con due endpoint. Uno con basicHttpBinding e uno con netTcpBinding. Qui è il mio config ...Impossibile ottenere richieste netTcpBinding da visualizzare in Fiddler

<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> 

Tuttavia, quando ho consumare il servizio che sto cercando di confrontare la differenza tra due richieste. Quindi sto facendo funzionare il violinista per farlo. Riesco a vedere le richieste baseHttpBinding in Fiddler ma non riesco a visualizzare le richieste net.tcp: //. Cosa posso fare per vedere questo traffico?

risposta

14

Fiddler è un proxy HTTP, quindi acquisirà solo le richieste che utilizzano il protocollo HTTP - non acquisirà le richieste effettuate utilizzando direttamente il socket. Puoi usare lo Network Monitor o qualche altro strumento di cattura di basso livello per farlo, ma l'interfaccia non è bella come quella a cui potresti essere abituato con Fiddler.

Inoltre, come indicato in un'altra risposta di Ladislav Mrnka, si osserveranno i byte binari per lo .NET Message Framing e lo binary XML encoding, quindi, a meno che non si abbia familiarità con essi, la maggior parte della cattura sembrerà senza senso.

8

Fiddler è sniffer HTTP non sniffer TCP. Puoi vedere solo le comunicazioni HTTP e HTTPS nel fiddler. Se vuoi vedere i messaggi passati su TCP, devi usare un altro strumento che funzioni al livello più basso. Ad esempio, WireShark, ma preparati a vedere solo alcuni dati binari.

3

Fiddler è un debugger HTTP. Se non stai usando HTTP, come con netTcpBinding, non sarai in grado di acquisire traffico con esso. Potresti provare Wireshark o qualcosa di simile.

Problemi correlati