2010-06-27 115 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連接。