Подтвердить что ты не робот

Не удается получить запросы NetTcpBinding для показа в Fiddler

У меня есть служба 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>

Однако, когда я использую службу, я пытаюсь сравнить разницу между двумя запросами. Поэтому я запускаю скрипача, чтобы сделать это. Я вижу запросы basicHttpBinding в Fiddler, но я не могу получить запросы net.tcp://. Что я могу сделать, чтобы увидеть этот трафик?

4b9b3361

Ответ 1

Fiddler является прокси-сервером HTTP, поэтому он будет захватывать только запросы, которые используют протокол HTTP - он не будет захватывать запросы, сделанные с использованием сокета напрямую. Для этого вы можете использовать Сетевой монитор или какой-либо другой инструмент захвата низкого уровня, но интерфейс не такой приятный, как тот, с которым вы можете работать с Fiddler.

Кроме того, как указано в другом ответе Ладислава Мрнки, вы будете смотреть на двоичные байты для .NET Message Framing и двоичное кодирование XML, поэтому, если вы не знакомы с ними, большая часть захвата будет выглядеть как тарабарщина.

Ответ 2

Fiddler - это сниффер HTTP, а не сниффер TCP. В скрипанге вы можете видеть только HTTP и HTTPS-связь. Если вы хотите видеть сообщения, переданные через TCP, вы должны использовать другой инструмент, работающий на более низком уровне. Например, WireShark, но будьте готовы, что вы увидите только некоторые двоичные данные.

Ответ 3

Fiddler - отладчик HTTP. Если вы не используете HTTP, например, с помощью netTcpBinding, вы не сможете захватить трафик с ним. Вы можете попробовать Wireshark или что-то подобное.