2013-03-13 156 views
1

此問題在stackoverflow上有很多版本。我嘗試了很多解決方案 - 但這些都不適合我。調用Web服務「底層連接已關閉:無法建立SSL/TLS安全通道的信任關係」

我有一個VB ASP.NET應用程序在Windows Server 2008上的IIS上運行。它調用一個web服務。運行Web服務的服務器具有自簽名證書。我已將Cert導入到IIS機器的信任庫中。我可以在IE-> Options-> Content-> Certificates-> Trusted Root Certification Authorities中看到證書。

當web服務被調用時,拋出一個異常

基礎連接已關閉:無法爲SSL/TLS安全通道的信任關係。

相同的IIS VB ASP.NET應用程序在另一臺具有類似設置的機器上運行良好。

這些都是我檢查

    不同的東西基本
  • 用來調用Web服務的URL相同的CN上導入到受信任的根CA的證書
  • 調用機器和Web服務主機之間的時間同步
  • 證書未過期。
  • IIS機器在IIS中有Proxy設置,但Webservice Host機器添加到不應使用Proxy的例外列表中。

我在VB.NET中編寫了一個小命令行測試程序,調用相同的webservice,運行正常。

將Cert導入到Trusted CA存儲後,我完成了iisreset。

我還沒有嘗試過的事情是重新啓動IIS機器 - 這是生產機器&我至少需要幾天才能重新啓動它。

我還能試試嗎?

回答

3

Internet Explorer證書設置僅適用於當前用戶。它是高度不太可能與您操作IE時登錄的用戶相同,而是用於託管IIS應用程序的用戶。您可以將證書添加到相應服務帳戶的可信證書中,但更簡單的方法是將其添加到「本地計算機」可信證書。

運行Microsoft管理控制檯(在運行對話框中鍵入「mmc」)文件>添加/刪除管理單元>證書,爲要管理的證書選擇「計算機帳戶」。這樣,任何服務器上的用戶或服務帳戶都會將該證書視爲可信。

或者,根據您訪問Web服務的方式,您可以在應用程序本身中添加一個異常。我會推薦檢查證書的指紋/散列的代碼,而不是允許它連接到任何不受信任的證書。

+0

謝謝 - 聽起來合乎邏輯。我會試試這個。 – user93353 2013-03-13 05:58:57

相關問題