2013-09-16 5 views
4

У меня есть веб-приложение и вызывается для внутренних служб WCF и ASMX, чтобы получить информацию. Но, в fildder, я могу видеть только запросы aspx aspx для веб-приложений, а не вызовы WCF и asmx.Захват запросов внутреннего запроса в скриптах

Как я могу захватить эти вызовы WCF и asmx в трафике Fiddler.

Если у fiddler нет такой опции, предложите другие инструменты.

ответ

-2

Скрипач работает, перехватывая веб-запросы в одном порту (скажем, 8888), а затем перенаправляет запрос на фактический целевой порт, который вы установили в WCF (скажем, 8000). Это позволяет Fiddler фиксировать двусторонний трафик между хостом и клиентом.

Таким образом, вам нужно иметь скрипт, работающий как на клиенте, так и на хосте. Затем, после запуска Fiddler, зайдите в меню «Инструменты» и выберите «Параметры Fiddler», убедившись, что он прослушивает порт 8888. Затем перейдите в меню «Правила», выберите «Настроить правила» и добавьте в класс «Обработчики» код, например:

if (oSession.host=="localhost:8888") { 
    oSession.host="localhost:8000"; 
} 

Затем измените клиентское приложение так, чтобы оно использовало 8888 (вместо обычного порта #), а затем запустило программу. Если правильно настроить, Fiddler будет действовать как человек в середине, перехватывая и регистрируя запросы и ответы.

Удачи. Если это работает как ответ, не забудьте пометить его.

+0

Привет Brain, если он находится в моем местном они, как вы предложили правильно. Но, пожалуйста, приложение, размещенное в среде QA/UAT/PROD, затем, как получить внутренний трафик. Оба приложения и службы WCF находятся на серверах differnet. – user2783742

+0

ОК, просто замените URL-адрес QA или Prod-сервера на «localhost» в правилах. Итак, «MyQAServer: 8888» вместо «localhost: 8888». – Brian

+0

Hi Brain, я пробовал с предложениями выше. Но не повезло. Может ли pls предложить, где именно мне нужно изменить, и мой secnario, у нас есть веб-приложения на серверах QA/UAT/PROD. Внутри этих веб-приложений используются некоторые службы WCF и службы asmx. Теперь я просматриваю эти веб-приложения QA/UAT/PROD на своем локальном ПК, а filddler устанавливается только на моем локальном ПК. В этом случае, как я могу захватить внутренние запросы WCF и asmx. Здесь нет совпадений моих локальных серверов, и ничего не будет в моем локальном, кроме браузера и скрипача. – user2783742

7

По умолчанию Fiddler запускается как прокси-сервер, который фиксирует трафик, который проходит через него.

Когда вы запустите Скрипач на своем клиенте, ваш браузер передает запрос через Fiddler по пути на сервер. Если ваш клиент и сервер находятся на одном ПК, трафик, отправленный на localhost или 127.0.0.1, может обойти Fiddler из-за жестко заданных ограничений в .NET Framework (в браузерах такая проблема отсутствует).

Для решения этой проблемы, вы можете обновить код .NET, чтобы ударить одного из псевдонимов для localhost, что Скрипач поддерживает, а именно: localhost.fiddler или ipv4.fiddler или ipv6.fiddler.

Если Скрипач работает на сервере, и вы хотите, чтобы захватить запросы, сделанные кода на стороне сервера (например, исходящих запросов от ASP.NET), то вам необходимо настроить приложение ASP.NET для отправки его трафик Скрипач. Это связано с тем, что, когда Fiddler запускается, он настраивает текущего пользователя для отправки своего трафика на Fiddler, но ASP.NET работает внутри учетных записей Windows, а не внутри учетной записи текущего пользователя. Существует несколько способов захвата запросов, сделанных изнутри ASP.NET, но this blog post суммирует простейшие. Обновите соответствующий machine.config (обычно 64-битную версию файла), чтобы содержать строку

<proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />

Теперь, если Скрипач работает на другом сервере то вы должны настроить параметры прокси-сервера, чтобы указать на любую машину Fiddler работает, например,

<proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://MyFiddlerServer:8888" usesystemdefault="false" />

+0

Привет, Эрик, мой secnario, у нас есть веб-приложения на серверах QA/UAT/PROD. Внутри этих веб-приложений используются некоторые службы WCF и службы asmx. Теперь я просматриваю эти веб-приложения QA/UAT/PROD на своем локальном ПК, а filddler устанавливается только на моем локальном ПК. В этом случае, как я могу захватить внутренние запросы WCF и asmx. Здесь нет совпадений с моими локальными серверами, и ничего не будет в моем локальном, кроме браузера и скрипача. – user2783742

+0

@ user2783742 вам необходимо отредактировать файл конфигурации на сервере, на котором размещен код QA/prod, и указать его на локальный компьютер. как указано EricLaw –

Смежные вопросы