【发布时间】:2010-11-12 17:44:51
【问题描述】:
我正在使用 .NET 2.0 进行简单的 Web 服务调用。在大多数机器上,我不需要做任何特别的事情。但是,一个客户端位于使用代理自动配置脚本的公司网络上。几乎所有我能找到的东西(例如http://msdn.microsoft.com/en-us/magazine/cc300743.aspx#S3)都告诉我我不需要做任何事情。 .NET 将从注册表中读取代理设置并“正常工作”。对对对。
如果客户首先使用他们的浏览器访问 Web 服务 URL,那么我的 Web 服务调用确实有效。但是,一段时间后,Web 服务调用停止工作并出现 407(需要代理身份验证)错误。
我已尝试明确设置代理(如 Get Proxy configuration before accessing an external webservice (.NET 2.0) 所建议的那样),但没有任何运气。
我找到了这个MS knowledgebase article,其中包含有关在 WinHTTP.DLL 中调用 WinHttpGetProxyForUrl 的信息。如果我从注册表中提取 autoconfigurl 设置并在调用 WinHttpGetProxyForUrl 时使用它,它似乎可以工作,但必须去那里似乎是错误的。有谁知道让 .NET 使用默认 IE 代理自动配置脚本的“正确方法”?谢谢。
【问题讨论】:
-
我发现这个 SO 问题 (stackoverflow.com/questions/202547/…) 包含有关 WinHttpGetIEProxyConfigForCurrentUser() 函数的信息。这至少应该让我避免直接访问注册表。