3

我有一个正在开发的 Web 应用程序,它会产生很多 HttpWebRequests。为了使调试它们更容易,我在 web.config 中设置了以下内容;

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

这允许我所有的 HttpWebRequests 通过 Fiddler 代理。问题是我需要让 Fiddler 运行才能让我的应用程序正常工作。

理想情况下,我希望在 Fiddler 运行时通过 Fiddler 代理它,而不是在 Fiddler 不运行时完全不代理,而不必每次都更改我的 web.config。

4

2 回答 2

1

有几个选项。

首先,您可以直接在代码中设置相关对象的相关Proxy属性,而不是回退到配置 XML;然后,您可以根据您喜欢的任何因素有选择地控制代理的使用。

或者,您可以尝试将scriptLocation 属性设置为指向http://localhost:8888/proxy.pac并使用 Fiddler 的about:config设置fiddler.proxy.pacfile.usefileprotocolfalse勾选 Tools > Fiddler Options > Connections > Use PAC Script 框。

于 2013-11-08T23:03:12.257 回答
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>
于 2013-11-08T23:26:18.877 回答