【发布时间】:2009-06-20 22:17:48
【问题描述】:
我需要使用 WCF 服务,但我在代理服务器后面,并且此代理服务器需要用户名和密码。
我找不到设置它的方法,如果它是一个 Web 服务,我可以做类似的事情
ws.Proxy = myProxyServer;
如何使用 WCF 服务做到这一点?
【问题讨论】:
-
如果能接受答案就好了,谢谢。
我需要使用 WCF 服务,但我在代理服务器后面,并且此代理服务器需要用户名和密码。
我找不到设置它的方法,如果它是一个 Web 服务,我可以做类似的事情
ws.Proxy = myProxyServer;
如何使用 WCF 服务做到这一点?
【问题讨论】:
在 WCF 绑定配置中,使用 useDefaultWebProxy 属性使 WCF 使用 windows 默认代理(可以从 IE 网络配置中设置):
<bindings>
<basicHttpBinding>
<binding name="ESBWSSL" ...everything... useDefaultWebProxy="true">
然后在代码中,在使用连接之前,执行以下操作:
WebProxy wproxy = new WebProxy("new proxy",true);
wproxy.Credentials = new NetworkCredential("user", "pass");
在您执行调用之前,使用您的 webrequest 对象:
WebRequest.DefaultWebProxy = wproxy;
我还没有测试过代码,但我相信这应该可以工作。
【讨论】:
注意根据评论替换了之前的答案
实际上还有另一个 stackoverflow 答案,涵盖了在代理上设置凭据。
Is it possible to specify proxy credentials in your web.config?
【讨论】: