2011-08-11 93 views
2

我想同時使用Sessions和SSL,因此我設置了所有證書並確保WCF服務上的所有設置都正確。我嘗試了一切,但我似乎無法得到這個工作。它引發了一個InvalidoperationException,說WsHttpBinding無法創建安全會話,我應該使用MessageSecurity而不是TransportSecurity。但是我想使用Https而不是Http,所以我想使用TransportSecurity。任何人都可以幫助我。提前致謝。WSHttpBinding和Https問題

App.config中爲WsHttpBinding的:

<wsHttpBinding> 
    <binding name="WSHttpBinding"> 
    <reliableSession enabled="True" /> 
    <security mode="Transport"> 
     <transport clientCredentialType="None"/> 
    </security> 
    </binding> 
    </wsHttpBinding> 

編輯:我忘了提及的是,出現InvalidOperationException當我嘗試調用ServiceHost.Open()所以記錄不會做多好,但感謝你的出現提到它。

回答

3

我沒有嘗試,但MSDN says

要通過HTTPS使用可靠的會話,你必須創建一個自定義綁定,使用可靠的會話和HTTPS傳輸。

嘗試在文章中描述的自定義綁定。

編輯:

我與反射檢查,爲什麼它不與WsHttpBinding工作。

if (isReliableSession && !this.IsSecureConversationEnabled()) 
{ 
    throw ... 
} 

這可能意味着WsHttpBinding允許使用通過不安全的通道或在具有信息安全和安全對話渠道安全可靠的會話:WsHttpBinding初始化時的安全性包含此代碼。

0

我建議你啓用WCF logging並使用SvcTraceViewer查看生成的日誌文件。這應該爲您提供更多關於發生的更多細節,並且通常幫助我追蹤更難的WCF問題。