问题
In c# 4.0, I have a web service called ManufacturerContactDetails. I am calling that web service from a windows app using the following:
var ws = new ManufacturerContactDetailsWebServiceSoapClient();
ContactDetails cd = ws.GetContactDetails("Google");
However, I would like to set the web proxy server that the soap client uses. I've had a look for a ws.Proxy property but it doesn't exist. I don't want to use the one from internet explorer.
How do I set the web proxy server to use?
回答1:
Create the app config file containing the following
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy usesystemdefault="True" bypassonlocal="True"/>
</defaultProxy>
</system.net>
More info here http://blogs.infosupport.com/blogs/porint/archive/2007/08/14/Configuring-a-proxy_2D00_server-for-WCF.aspx
Bye
回答2:
If this is a WCF client there is no Proxy property. You could try this instead:
var proxy = new WebProxy("proxy.foo.com", true);
proxy.Credentials = new NetworkCredential("user", "pass");
WebRequest.DefaultWebProxy = proxy;
and then do the call:
using (var ws = new ManufacturerContactDetailsWebServiceSoapClient())
{
var cd = ws.GetContactDetails("Google");
}
回答3:
Add this to your app.config or web.config:
<system.net>
<defaultProxy enabled="true">
<proxy proxyaddress="http://111.222.333.444:80"/>
</defaultProxy>
</system.net>
回答4:
Try adding this to app.config file.
<system.net>
<defaultProxy enabled="false" useDefaultCredentials="false">
<proxy/>
</defaultProxy>
</system.net>
Add proxy in the proxy tag. Use the default proxy tag in the system.net setting in the app.config.
来源:https://stackoverflow.com/questions/5205270/web-service-proxy-setting