2014-02-21 41 views
0

我想在运行时读取我的默认代理设置的值,但我似乎无法找到任何方式这样做。关于如何设置默认代理(例如How to pass credentials in defaultProxy config setting?)有很多相关的答案,但我正在寻找如何阅读这些设置。如何从web.config中的system.net部分读取defaultProxy设置的值?

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

回答

1

我最终通过配置管理器读取值,而不是通过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类具有符合我需求的“已启用”和“Proxy.ProxyAddress”的属性。

0

用下面的web.config部分:

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

下面的代码返回从Web配置代理信息:

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

谢谢,杰米。这几乎做到了我所需要的。代理的所有属性似乎都可用,但不清楚如何检查代理是否已启用。另外,这个方法不会启动对URI的Web请求吗? – Jay

相关问题