2013-01-21 86 views
0

我有本地IIS上託管的WCF服務,它具有自簽名證書,用於測試和Windows服務以及連接到該WCF服務的Windows應用程序併發送一些數據。Windows應用程序通過HTTPS連接到本地WCF服務正常,windows服務失敗,代碼相同

兩個Windows應用程序和Windows服務使用同一個DLL連接到WCF服務,但Windows服務失敗:

System.ServiceModel.Security.SecurityNegotiationException:無法建立信任關係與SSL/TLS安全通道權威'本地域'。 ---> System.Net.WebException:底層連接已關閉:無法建立SSL/TLS安全通道的信任關係。 ---> System.Security.Authentication.AuthenticationException:根據驗證過程,遠程證書無效。

Windows服務帳戶設置爲LocalSystem,這可能是這個原因嗎?如果是這樣,我應該在哪個帳戶運行Windows服務?

+0

http://superuser.com/questions/370217/trust-ssl-certificate-to-local-system-account –

+0

@Daniel我已經做到了。奇怪的是,它從應用程序而不是從服務運行。 – formatc

+0

請看下面的鏈接:http://stackoverflow.com/questions/109186/bypass-invalid-ssl-certificate-errors-when-calling-web-services-in-net – Dhawalk

回答

0

這可能是因爲當它作爲應用程序運行時,您正在使用您的Windows憑據,但在該服務下運行時,它可能以本地系統運行。嘗試改變你的Windows服務與您的憑據運行,看看是否有效。如果是這樣,你應該創建一個專門用於運行服務的用戶,所以如果你改變你的密碼,你不會中斷服務。

相關問題