WCF客户端- 407代理认证在运行web服务时需要



我创建了简单的WinForms应用程序,使用免费的web服务http://www.webservicemart.com/uszip.asmx。但是这个应用程序无法使用服务操作,报错:

远程服务器返回了一个意外的响应:(407)需要代理身份验证(ISA服务器需要授权来完成请求。拒绝访问Web代理服务)

创建代理并触发服务操作的代码:
ChannelFactory<ServiceReference1.USZipSoap> proxy = new ChannelFactory<ServiceReference1.USZipSoap>("USZipSoap");
ServiceReference1.USZipSoap client = proxy.CreateChannel();
string str = client.ValidateZip("12345");
MessageBox.Show(str);

这是我公司的网络问题还是这是一个代理在webservicemart.com?

我搜索了很多关于更改配置文件,创建自定义绑定等的信息。但我觉得缺乏更基本的了解……
如果这个错误是关于我们公司网络的ISA服务器,那么我应该对ISA服务器做什么配置,以不限制我使用外部web服务?

在绑定配置中确保useDefaultWebProxy设置为true -它将使用您在IE中找到的配置。在配置文件中添加以下代码片段,以确保默认情况下将凭据用于代理服务器上的身份验证:

<system.net>
  <defaultProxy useDefaultCredentials="true" />
</system.net>

这对我有用…将10.1.0.50和端口号替换为代理服务器的IP

  <system.net>
    <defaultProxy useDefaultCredentials="true">
      <proxy usesystemdefault="False" proxyaddress="http://10.1.0.50:8080" bypassonlocal="True" />
    </defaultProxy>
  </system.net>

似乎你们公司的所有流量都通过代理被重定向了。您可以从IE中浏览到web服务并查看其wsdl并调用测试页面以查看一些结果吗?如果是这样的话,试着把下面的部分添加到你的web.config中:

<system.net>   
<defaultProxy>     
<proxy proxyaddress="<your proxy address>" bypassonlocal="true" />
</defaultProxy>
</system.net> 

您可以从IE的设置中找到代理地址。

注意:当你移动到不同的环境时,你需要确保它是相同的情况,否则你需要删除上述配置

您可以设置web。

以后的某个时候。

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;

相关内容

  • 没有找到相关文章

最新更新