当我调用一个web服务时,我得到了这个错误:
“远程服务器返回错误:(407)需要代理身份验证”。
我得到了大概的想法,我可以通过添加
myProxy.Credentials = NetworkCredential("user", "password", "domain");
或者在代码中使用DefaultCredentials。我的问题是,在没有这个的情况下,对web服务的调用在生产中是有效的。
似乎有一个涉及Machine.config的非代码解决方案,但它是什么呢?目前,我无法访问生产箱的machine.config文件来查看它是什么样子。我尝试按如下方式更新我的machine.config,但仍然收到407错误。
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<bypasslist>
<clear />
</bypasslist>
<proxy proxyaddress="myproxy:9000"
usesystemdefault="false"
bypassonlocal="true"
autoDetect="False" />
</defaultProxy>
</system.net>
发布于 2012-09-28 14:31:08
只需将此添加到配置即可
<system.net>
<defaultProxy useDefaultCredentials="true" >
</defaultProxy>
</system.net>
发布于 2012-08-20 18:13:14
在下面的代码中,我们不需要对凭证进行硬编码。
service.Proxy = WebRequest.DefaultWebProxy;
service.Credentials = System.Net.CredentialCache.DefaultCredentials; ;
service.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
发布于 2010-09-14 14:59:33
请咨询您的防火墙专家。它们打开PROD服务器的防火墙,因此不需要使用代理。
感谢你的建议帮助我解决了我的问题:
必须在两个位置设置凭据才能通过407错误:
HttpWebRequest webRequest = WebRequest.Create(uirTradeStream) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential("user", "password", "domain");
webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
瞧!
https://stackoverflow.com/questions/2581609
复制相似问题