502错误的网关WCF没有响应

时间:2010-06-27 13:48:05

标签: wcf ssl https

IIS6

- 我的网络上有一台服务器,其网络名称为Test_Server。它连接到ISA代理。

- 我的服务器名为Live_Server,名称为IP Live_IP。它没有连接到任何代理。或者假设是。

- 当然我打开所有防火墙端口

- 我有一个WCF REST服务,我使用HTTPS连接它,一切都很好: -

  • 127.0.0.1:SomePort
  • test_Server:SomePort

- 使用HTTPS请求将WCF Rest连接到以下任何一项时: -

我收到502 Bad gateway错误,异常状态为System.Net.WebExceptionStatus.ProtocolError

  • Live_Server:SomePort
  • Live_IP:SomePort

什么是机会??

以下是WCF的web.config

<system.serviceModel>
  <services>
    <service name="Contracts.WCF_REST">
      <endpoint behaviorConfiguration="webHttp" binding="webHttpBinding" bindingConfiguration="SecureWebHttp" contract="Contracts.IWCF_REST" />
    </service>
  </services>

  <bindings>
    <webHttpBinding>
      <binding name="SecureWebHttp" useDefaultWebProxy="false">
        <security mode="Transport">
          <transport clientCredentialType="None" proxyCredentialType="None"/>
        </security>
      </binding>
    </webHttpBinding>
  </bindings>
  <behaviors>
    <endpointBehaviors>
      <behavior name="webHttp">
        <webHttp/>
      </behavior>
    </endpointBehaviors>
  </behaviors>
</system.serviceModel>

2 个答案:

答案 0 :(得分:2)

疯狂的结束

据我了解,客户端正在检测代理并尝试通过它进行连接。我只是要求.net停止使用在客户端找到的任何代理。

但我仍然没有得到它,为什么它适用于HTTP并且无法使用HTTPS。 HTTPS仅在我停止使用代理时才起作用。

有人有更好的解释吗?

  WebRequest.DefaultWebProxy = null;

答案 1 :(得分:0)

在将内部部署的WCF服务连接到Azure托管的Web角色时,我已经看到了这样的问题,这些问题主要是由于在内部部署网络中使用代理。在任何企业IT环境中,所有计算机网络设置都设置为使用代理服务器自动检测,或者如果您有多个代理服务器,则实际设置选择哪个。当WCF服务连接外部世界时,它会通过相同的代理设置,实际上会改变连接它的动态并引入行为。

那么为什么使用HTTPS而不是HTTP,这是因为HTTPS使用TLS来保护通信,如果在中间有代理,则很可能无法建立WCF通信。

通过将UseDefaultWebProxy设置为false,您要求Web服务不使用计算机专用代理并使用用户设置,这是您的Web服务配置的一部分。这样,您可以强制您的WCF特定配置通过计算机专用代理建立HTTPS连接。