2010-06-27 106 views
1

IIS6502错误的网关WCF不响应

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

- 我有一个名为Live_Server的IP地址为Live_IP的域名。它没有连接到任何代理。或者假设是。

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

- 我有一个WCF REST服务,我使用HTTPS连接到它,一切都在罚款: -

  • 127.0.0.1: SomePort
  • test_Server:SomePort

- 当我WCF休息连接到以下任何使用HTTPS请求: -

我得到502错误网关错误和异常状态System.Net.WebExceptionStatus.ProtocolError

  • Live_Server:SomePort
  • Live_IP:SomePort

什么是机会?

以下是WCF

疯狂

结束的

<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

在web.config据我明白,客户端被检测的代理,并试图通过它连接。我只是要求.net停止使用在客户端找到的任何代理。

但我仍然没有得到它,为什么它与HTTP很好,并且无法使用HTTPS。只有当我停止使用代理时,HTTPS才有效。

有人有更好的解释吗?

WebRequest.DefaultWebProxy = null; 
0

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

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

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