GlobalProxySelection.Select属性

今天项目中发现调用WebService总是出错,报错说:基础连接已经关闭,需要正确配置代理信息之类的错误。

但是检查调用处,为发现任何显示设置Proxy的地方,诡异!

后来,才发现这个Proxy信息一直保存在Global信息中,原来在之前的App中,有发邮件并配置了如下Proxy:

  using System.Net;

  WebProxy objMyProxy = new WebProxy();
    objMyProxy = new WebProxy(SystemParameterConfiguration.NetWorkProxyAddress,SystemParameterConfiguration.NetWorkProxyPort);
    objMyProxy.Credentials = new NetworkCredential(SystemParameterConfiguration.NetWorkProxyUserID
           ,SystemParameterConfiguration.NetWorkProxyPassword
           ,SystemParameterConfiguration.NetWorkProxyDomain);
    GlobalProxySelection.Select = objMyProxy;

其中,GlobalProxySelection.Select = objMyProxy;比较关键,它会将信息存储到Global中。

对于这个属性,MSDN这样描述:http://msdn.microsoft.com/en-us/library/system.net.globalproxyselection.select.aspx

Gets or sets the global HTTP proxy.

Remark:

The Select property sets the proxy that all WebRequest instances use if the request supports proxies and no proxy is set explicitly using the Proxy property. Proxies are currently supported by FtpWebRequest and HttpWebRequest.

也就是说,如果WebRequest支持设置Proxy,并且它没有被显示地使用Proxy属性设置,就会用Select属性的值作为WebRequest的代理;

当然我想,如果Select本身就不包含Proxy属性的信息,WebRequest也就不会使用代理!

 

你可能感兴趣的:(select)