2013-11-07 4 views
3

У меня есть веб-приложение, которое я разрабатываю, что делает много HttpWebRequests. Чтобы облегчить их отладку, я установил следующее в моем web.config;Использование Fiddler в качестве прокси для HttpWebRequest требует запуска Fiddler

<system.net> 
    <defaultProxy> 
     <proxy proxyaddress="http://127.0.0.1:9999" /> 
     </defaultProxy> 
</system.net> 

Это позволяет всем моим HttpWebRequests прокси через Fiddler. Проблема в том, что мне нужно, чтобы Fiddler работал, чтобы мое приложение работало правильно.

В идеале, я хотел бы иметь прокси-сервер через Fiddler, когда Fiddler запущен, а не прокси-сервер вообще, когда Fiddler не работает, не меняя свой web.config каждый раз.

+0

Ваш клиент должен использовать прокси-сервер, а не ваше серверное приложение. Поэтому не указывайте стороне сервера на скрипач. – lboshuizen

+1

@lboshuizen - Я не совсем уверен, как можно использовать ваше предложение - ясно, если сервер делает запросы к другим ресурсам, ни один из способов, о которых клиент даже не знает о них ... –

+0

@lboshuizen Отладка сетевых вызовов на стороне сервера при разработке локально огромная победа. –

ответ

1

Есть несколько вариантов.

Во-первых, вы можете установить соответствующий Прокси объект соответствующих объектов inside your code directly вместо возврата к конфигурации XML; вы можете выборочно контролировать использование прокси-сервера на основе любого фактора, который вам нравится.

В качестве альтернативы, вы можете попробовать установить scriptLocationattribute, чтобы указать на http://localhost:8888/proxy.pac и использовать Фиддлерз о: конфигурации установить fiddler.proxy.pacfile.usefileprotocol в false и клещевого Инструменты> Скрипач Параметры> Подключения> флажок Использовать PAC Script.

0

Вы рассмотрели другой подход, включив прослушиватели трассировки в System.Net? Это не так удобно, как использование Fiddler, но этого может быть достаточно для спорадической отладки. Для ведения журнала сообщений просто System.Net должно быть достаточно, но их больше.

<system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="System.Net"> 
     <listeners> 
      <add name="System.Net"/> 
     </listeners> 
     </source> 
     <!--<source name="System.Net.Sockets"> 
     <listeners> 
      <add name="System.Net"/> 
     </listeners> 
     </source>--> 
     <!--<source name="System.Net.Cache"> 
     <listeners> 
      <add name="System.Net"/> 
     </listeners> 
     </source>--> 
    </sources> 
    <sharedListeners> 
     <add 
      name="System.Net" 
      type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="System.Net.trace.log" 
     /> 
    </sharedListeners> 
    <switches> 
     <add name="System.Net" value="Verbose" /> 
     <add name="System.Net.Sockets" value="Verbose" /> 
     <add name="System.Net.Cache" value="Verbose" /> 
    </switches> 
    </system.diagnostics> 
Смежные вопросы