2011-04-25 56 views
2

我有一個Web服務通過專用連接通過https使用第三方Web服務,我應用了ServicePointManager.ServerCertificateValidationCallback機制來跨越ssl,該服務正在工作,但問題是,每次我調用第三方Web服務時,都會嘗試訪問crl.verisign.net,問題是我們的生產服務器沒有Internet連接,因此每次通話延遲9秒。.net asp.net web應用程序嘗試連接到crl.verisign.net

有什麼辦法擺脫這種連接到crl.verisign.net?任何幫助將不勝感激。

感謝

ServerCertificateValidationCallback代碼:

ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf SubCertHandler) 
ServicePointManager.CheckCertificateRevocationList = False 

Private Shared Function SubCertHandler(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean 
    Return True 
End Function 
+0

簡單的答案:將hosts文件更改爲指向localhost – pickypg 2011-04-26 00:05:05

+0

我們可以看到您用於回調驗證的代碼嗎? – pickypg 2011-04-26 00:16:57

+0

我使用的代碼是這樣的:代碼ServicePointManager.ServerCertificateValidationCallback =新RemoteCertificateValidationCallback(AddressOf SubCertHandler)ServicePointManager.CheckCertificateRevocationList = False私有共享函數SubCertHandler(ByVal發件人爲對象,ByVal證書由於X509Certificate,ByVal鏈爲X509Chain,ByVal sslPolicyErrors爲SslPolicyErrors )作爲布爾返回真正的結束函數'代碼' – 2011-04-26 13:48:25

回答

3

這是一個常見的問題。解決方案有時是特定於環境的。

如果您已經在使用ServicePointManager,請嘗試將CheckCertificationRevocationList屬性設置爲false。

http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.checkcertificaterevocationlist.aspx

+0

已經嘗試過CheckCertificationRevocationList並沒有工作。 我正在使用的代碼是這樣的: 'code' ServicePointManager.ServerCertificateValidationCallback =新RemoteCertificateValidationCallback(AddressOf SubCertHandler) ServicePointManager.CheckCertificateRevocationList =假 私人共享功能SubCertHandler(BYVAL發件人爲對象,BYVAL證書作爲x509證書,ByVal chain As X509Chain,ByVal sslPolicyErrors As SslPolicyErrors)As Boolean Return True End Function 'code' – 2011-04-26 02:02:33

1

發現問題。在服務器中有一項名爲「Win http Web Proxy Auto Discovery」的服務,當我們禁用此服務時,所有事情都按預期工作。

感謝您的幫助!

相關問題