如何从web.config中的system.net部分读取defaultProxy设置的值?

时间:2014-02-21 16:47:45

标签: c# proxy web-config

我试图在运行时读取默认代理设置的值,但我似乎无法找到任何方法。关于如何设置默认代理(例如How to pass credentials in defaultProxy config setting?)有很多相关的答案,但我正在寻找如何读取这些设置。

这背后的原因是我们有时会打开代理,以便我们可以使用Fiddler捕获服务器上的流量,并且我想创建一个故障保护,如果有人在关闭Fiddler后意外地将其置于此状态,则会通知我

2 个答案:

答案 0 :(得分:4)

我最终通过配置管理器而不是通过System.Net.WebProxy:

读取值
var proxy = System.Web.Configuration.WebConfigurationManager.GetSection("system.net/defaultProxy") as System.Net.Configuration.DefaultProxySection  
if (proxy != null) { /* Check Values Here */ }

DefalutProxySection类具有符合我需要的“Enabled”和“Proxy.ProxyAddress”属性。

答案 1 :(得分:0)

使用以下web.config部分:

<defaultProxy useDefaultCredentials="true">
  <proxy usesystemdefault="False" proxyaddress="http://1.1.1.1" bypassonlocal="True" />
</defaultProxy>

以下代码从web config返回代理信息:

Uri proxy = WebRequest.DefaultWebProxy.GetProxy(new System.Uri("http://www.google.com"));