【问题标题】:Bypass Proxy Server in vb.net在 vb.net 中绕过代理服务器
【发布时间】:2013-08-13 12:28:01
【问题描述】:

我正在调用位于 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

【问题讨论】:

  • 是否允许到 Web 服务的传出连接绕过代理服务器?通常当你有代理服务器时,这是打开传出连接的方式,否则防火墙可能会阻塞。
  • 您如何确定您的请求正在访问代理服务器?你怎么知道你已经成功绕过它?
  • 当我从没有互联网的机器(机器在局域网中)访问网络服务时,它工作正常。但是当我尝试从具有互联网连接的机器上尝试时,它不会允许我。
  • bypasslist:提供一组描述不使用代理的地址的正则表达式。

标签: c# asp.net vb.net proxy web-config


【解决方案1】:

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

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

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

   </defaultProxy>

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

【讨论】:

  • 192\.168\.\d{1,3}\.\d{1,3} ? [a-z]+\.webservice\.com$ ?是有效的https://www.nuget.org/api/* 吗?
  • MSDN 说:将 IP 地址或 DNS 名称添加到代理绕过列表。不说 URL 或URIYou should use caution when specifying a regular expression for this element. The regular expression "[a-z]+.contoso.com" matches any host in the contoso.com domain, but it also matches any host in the contoso.com.cpandl.com domain. To match only a host in the contoso.com domain, use an anchor ("$"): "[a-z]+.contoso.com$".
【解决方案2】:

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

<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>

【讨论】:

  • address="https://labgrm.com/*" 是否有效? address="192.168.\d{1,3}\.\d{1,3}" 有效,address="192.168.*" 无效?
  • address="https://www.nuget.org/api/*" 是否有效?或者更好的方法是 address="www\.nuget\.org$ ?
猜你喜欢
  • 1970-01-01
  • 2018-01-13
  • 1970-01-01
  • 1970-01-01
  • 2018-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多