2013-06-07 2 views
8

Я недавно установил последний Fiddler (Fiddler4), и абсолютно ничего, что я пытаюсь, работает, чтобы заставить его захватить локальный трафик. У меня есть приложение MVC, которая соединяется с приложением MVC WebAPI и работает на IIS, вот что я пробовал:Не могу получить Fiddler для захвата локального трафика в IIS

  • Скрипач Параметры> Подключения> Мониторинг Все соединения & Использование PAC Script
  • Изменена WebClient C# звонить использовать следующие адреса без успеха:
  • Изменено мой «Default Сайт» в IIS работать под новым AppPool, который использует свою локальную учетную запись, и побежал Fiddler как администратор
  • добавил <system.net> <defaultProxy> <proxy bypassonlocal="False" usesystemdefault="True" /> </defaultProxy> </system.net> к моей web.config в приложении MVC.

Ничего не сработало, я понятия не имею, что попробовать. Любые советы высоко ценится. Спасибо, Шон

+1

Что именно вы не можете захватить? Запросы вашего браузера к приложению MVC, вызовы веб-API, которые выполняет приложение MVC или и то, и другое? Как размещаются приложения? Вы пробовали указать адрес прокси-сервера Fiddler явно как «'? – CodeCaster

+0

Привет CodeCaster, я пытаюсь захватить вызовы Web API из приложения MVC, а не трафик браузера в приложение MVC. Оба приложения размещаются в IIS на веб-сайте по умолчанию в качестве виртуальных приложений. Единственные настройки прокси-сервера, которые я изменил в web.config, - это то, что у меня выше. – pharophy

+0

Мой вопрос на самом деле был предложением. – CodeCaster

ответ

7

Оказалось, что мне нужно было настроить Fiddler как обратный прокси (http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy). Я действительно не понимаю, почему, прежде чем я перешел с Fiddler2 на Fiddler4, мне не пришлось это делать. Раньше я использовал только http://ipv4.localhost/app-name, и все отлично работало. Чтобы заставить его работать с Fiddler4, я установил обратный прокси, а затем изменил все мои запросы от http://ipv4.localhost/app-name до http://machinename:8888/app-name. Теперь я могу прослушивать связь между приложениями. Любая идея, почему я не должен был делать это с Fiddler2, но теперь я делаю это после обновления до Fiddler4?

+0

В этом отношении нет ничего другого между Fiddler2 и Fiddler4. Что-то еще в вашей среде изменилось. (Вы уверены, что у вас нет набора фильтров? Справка> Устранение неполадок фильтров) – EricLaw

+0

А я даже не знал, что это существовало, спасибо! – pharophy

+3

«Ничего особенного между Fiddler2 и Fiddler4 нет». почему один работает, а другой нет, – Dan

0

Попробуйте добавить запись в файл хостов (C: \ WINDOWS \ system32 \ Drivers \ Etc \ хостов), как:

127.0.0.1 mysite.local 

Затем вам нужно книжное в вашем веб-сайт в IIS для соответствия.

Затем используйте http://mysite.local/

+0

Я получил его, работая до того, как я добрался до вашего ответа, похоже, похоже, что он работал, но я не тестировал. – pharophy

1

Самый простой надежный решение, которое я знаю, чтобы захватить не-Webbrowser трафик явно указать порт Fiddler как прокси-сервер для веб-запросов. В зависимости от запросов ваш код делает код будет выглядеть так:

request.Proxy = new WebProxy("127.0.0.1", 8888) 

Примечание: не забудьте запустить Fiddler с «Захват» и «Весь процесс» (видимый в строке состояния Скрипач)

+0

В итоге я сделал что-то похожее на это, см. Мой ответ. Оказывается, у меня не было Fiddler, настроенного как обратный прокси, и мне нужно было это сделать. Любая идея, почему я должен делать это с Fiddler4, но когда у меня был Fiddler2, он работал без дополнительной настройки? – pharophy

0

Попытайтесь использовать http://machinename./page

ie .. попробуйте суффикс периода имени машины и просмотрите.

+0

по какой-то причине IIS возвращает 400 Bad-запрос при попытке «.». – pharophy

2

Я знаю, что вы упомянули об этом в своем OP, но это сработало для меня и было очень просто сделать, поэтому я подумал, что буду делиться тем, что другие сталкиваются с той же проблемой и не хотят переживать проблемы настраивая обратный прокси-сервер, если им это не нужно.


я получил эту работу, просто изменив пула приложений IIS, чей трафик я хотел, чтобы проверить, чтобы работать под моей личности, так как Скрипач, кажется, только захватить трафик зарегистрированного пользователя по умолчанию. Просто убедитесь, что у пользователя есть все необходимые разрешения, требуемые IIS; Я администратор, поэтому для меня это не проблема. И, конечно же, не забудьте изменить идентификатор пула приложений IIS, когда вы закончите.

Другой вариант, конечно, состоит в том, чтобы вместо этого войти в систему как пользователь, с которым работает пул приложений IIS (если это не учетная запись службы, например, Network Service), а затем запустить Fiddler во время входа в систему как другой пользователь.

+0

Это самый простой способ выполнить это –

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