从代理服务器后面添加Web服务引用

Nik*_*ita 9 c# asmx proxy-authentication

我正在使用vs2010.在一个简单的控制台应用程序中,我尝试添加http://***/service1.asmx旧的asmx服务的服务引用.我的电脑在代理服务器后面,所以我收到一个错误:

"远程服务器返回了意外响应:(407)需要代理验证."

当我使用wsdl工具我无法定义代理服务器端口号,我得到消息,服务器,例如10.0.0.3:80,没有响应,但我需要指定8080端口,不知道如何.我怎么能创建一个参考?

Isr*_*ies 27

我花了差不多50个小时才发现问题,在网上找不到这个简单的解决方案.

在Web.config中的"配置"部分下添加:

  <system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy>
</system.net>
Run Code Online (Sandbox Code Playgroud)

然后就像一个魅力!

您也可以从后面的代码中执行此操作:

serviceConnection = new WebService1();
serviceConnection.Proxy = System.Net.HttpWebRequest.GetSystemWebProxy();
serviceConnection.Proxy.Credentials = CredentialCache.DefaultCredentials; 
Run Code Online (Sandbox Code Playgroud)

工作美丽!!

如果您需要从HTTPS位置使用,请添加以下配置:

<message clientCredentialType="Certificate" algorithmSuite="Default" />
Run Code Online (Sandbox Code Playgroud)


Woo*_*Hoo 7

在添加Web引用时,请查看以下链接以指定代理地址和服务器端口.

http://msdn.microsoft.com/en-us/library/bb628649.aspx

http://msdn.microsoft.com/en-us/library/03seed2h.aspx

添加对asmx的引用

  1. 右键单击控制台应用程序,然后选择添加服务引用.

  2. 单击高级按钮,然后在地址栏中输入asmx地址.单击旁边的绿色按钮以发现asmx.

  3. 给它一个名字,然后点击添加引用.

更新:尝试更新web config/app config并添加;

<system.net>

<defaultProxy>
<proxy usesystemdefault="True" proxyaddress="http://[your proxy address and port number]"  bypassonlocal="True"/>

</defaultProxy>

</system.net>
Run Code Online (Sandbox Code Playgroud)