背景:我们有一个服务安装在已经开始无法调用外部Web服务的远程站点上。据现场的网络\支持工程师没有代理应该是必需的,但试图执行的WebRequest返回一个异常时:WebRequest.Proxy - 什么是默认值
System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.
唯一的例外是相对不言自明的,但看代码,没有代理在对WebRequest的调用中指定,并且没有代理在app.config文件中定义。
参照MSDN文档WebRequest.Proxy:“该IWebProxy对象,以便代理请求的默认值是通过调用GlobalProxySelection.Select属性设置”
,然后提到了GlobalProxySelection.Select的文档:
“获取或设置全局HTTP代理。”
并且GlobalProxySelection.Select没有在应用程序的任何位置设置,默认值来自哪里?还有其他全局配置文件可以设置全局HTTP代理吗?
但关键是我根本不想使用代理。但是由于某种原因,它似乎默认为代理服务器,我无法找到它尝试使用代理服务器的位置或原因。 – mutex
检查您的Windows网络设置,或者如果您在办公网络上,请咨询您的系统管理员。你所有的互联网连接都通过代理吗? – lahsrah
系统管理员说有一个规则,以便对这个特定的Web服务的调用不需要代理;事实上,如果我关闭IE中的代理并浏览到Web服务,它会按预期加载。在C#服务中,在代码中没有设置代理,在app.config中没有设置代理,在machine.config中没有设置代理。所以我很困惑,为什么它试图使用代理。 – mutex