背景:我们在远程站点安装了一项服务,该服务开始无法调用外部 Web 服务。根据现场网络\支持工程师的说法,不需要代理,但是在尝试执行 WebRequest 时会返回异常:
System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.
异常是相对不言自明的,但是看代码,在调用 WebRequest 时没有指定代理,在 app.config 文件中也没有定义代理。
参考 WebRequest.Proxy 的 MSDN 文档:
“用于代理请求的 IWebProxy 对象。通过调用 GlobalProxySelection.Select 属性设置默认值。”
然后参考 GlobalProxySelection.Select 的文档:
“获取或设置全局 HTTP 代理。”
并且鉴于 GlobalProxySelection.Select 没有在应用程序的任何地方设置,默认值从何而来?还有其他可以设置全局 HTTP 代理的全局配置文件吗?