3

我正在调用位于 www.webservice.com 的网络服务。但由于代理服务器,我无法打电话。

我在 web.config 中使用了以下代码,但它不起作用。

<defaultProxy>
  <proxy proxyaddress="www.proxyserver.com" bypassonlocal="True" usesystemdefault="False"  />
  <bypasslist >
    <add address="www.webservice.com" />
  </bypasslist>
</defaultProxy>

我正在使用 vs2005 & .Net 2.0

4

2 回答 2

4

请改用此配置。请记住,它使用的是代理的默认凭据。我假设您已经在网络代理设置中配置了您的代理。

  <defaultProxy useDefaultCredentials="true">
       <proxy usesystemdefault="True"
        proxyaddress="http://yourproxyAddress"
        bypassonlocal="True" />

     <bypasslist >
         <add address="www.webservice.com" />
     </bypasslist>

   </defaultProxy>

这仅在您的服务器可以访问 www.webservice.com 时才有效。

于 2013-08-16T11:02:22.447 回答
4

您是否尝试过对旁路列表地址使用正则表达式?我认为您域中的点可能会导致问题,因为点需要在正则表达式中转义。

<configuration>
  <system.net>
    <defaultProxy>
      <bypasslist>
        <add address="[a-z]+\.contoso\.com$" />
        <add address="192\.168\.\d{1,3}\.\d{1,3}" />
      </bypasslist>
    </defaultProxy>
  </system.net>
</configuration>

微软参考:http: //msdn.microsoft.com/en-us/library/31465c77.aspx

如果 WCF 不使用 defaultProxy 设置,请尝试将 UseDefaultWebProxy 设置为 false 以在代码或 web.config 中为您的 Web 服务绑定

<basicHttpBinding>
   <binding useDefaultWebProxy="False" />
</basicHttpBinding>
于 2013-08-23T04:21:43.457 回答