c# - 远程服务器返回错误:(407)需要代理身份验证
.net proxy-authentication (4)
prod中的机器或web.config可能在配置中有设置; 你可能不需要代理标签。
<system.net>
<defaultProxy useDefaultCredentials="true" >
<proxy usesystemdefault="False"
proxyaddress="http://<ProxyLocation>:<port>"
bypassonlocal="True"
autoDetect="False" />
</defaultProxy>
</system.net>
https://code.i-harness.com
我在调用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>
只需将此添加到配置
<system.net>
<defaultProxy useDefaultCredentials="true" >
</defaultProxy>
</system.net>
我有类似的代理相关问题。 在我的情况下,它足以添加:
webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
请咨询您的防火墙专家。 他们为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");
瞧!