我有一个 .NET 3.5 应用程序,它发出标准 http WebRequest:
var webRequest = WebRequest.Create(new Uri("http://myserver.com/target.xml));
var webResponse = webRequest.GetResponse();
此应用程序通常部署在使用代理的网络中,但我从未真正遇到过此问题,直到最近将其部署在使用“Blue Coat”代理/防火墙的客户端上。
他们的代理配置为透明代理。
问题是,90% 的时间里,我的 WebRequests 都会失败并出现 401 Unauthorized,但有时它们可以正常工作(在 10 台以上客户端机器上的行为相同)。
此外,在所有这些设备上,如果先打开 Internet Explorer 并手动浏览我的某个 URL(我检查了他们的 IE 配置,没有输入代理配置),它都可以正常工作。因此,我应用程序中的所有 WebRequests 都可以无缝运行。
他们的网络团队没有任何建议,但承认过去确实见过“奇怪的”行为。
有人知道这里发生了什么以及可以做什么吗?
答案1
如果您没有定义特定的代理,请默认尝试以下操作:
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;