我試圖移植現有的WCF客戶端應用程序在Mono下的Linux上運行。現在我正在測試所有的東西,找出在單聲道上有什麼作用,哪些沒有。WCF單聲道 - 與SSL的BasicHttpBinding
客戶端通過basicHttpBinding進行超級簡單調用。它工作的很好,直到我啓用SSL(即在綁定中指定BasicHttpSecurityMode.Transport)。
- 運行在Windows .NET中,它的偉大工程
- 運行在Mono在Ubuntu 9.10 /單聲道2.6我得到以下錯誤:
Exception in async operation: System.Net.WebException: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff800b010a
我讀過Mono security FAQ;但是服務器上的SSL證書來自Equifax安全證書頒發機構頒發的根CA(購買的證書)。我在Ubuntu安裝上針對.svc URL運行了TlsTest工具,並且沒有問題/錯誤。另外,我可以在Firefox中使用罰款(沒有安全警告)。
我錯過了什麼?
感謝您的回答! 我使用簡單的WebRequest進行測試,結果相同。不過,我認爲我現在看到了這個問題 - 我已經將Mono 2.6與Ubuntu 9.10附帶的Mono 2.4軟件包並排安裝。我不得不這樣做,因爲我的WCF HTTPS調用總是會在2.4上失敗(我從HttpsTransportBindingElement獲得一個NotImplementedException)。 我做了一個簡單的測試應用程序,使一個簡單的WebRequest。當我在2.6中運行時,它會因無效證書失敗。當我在2.4中運行它時,它工作正常!所以顯然我的證書是不可見的單聲道2.6 ..... – TheNextman 2010-04-19 14:20:02