2014-02-27 41 views
2

服務器在工作組(不是域)中。自託管的WCF服務配置了Windows安全性。綁定是netTcpBinding。自託管的WCF服務和環回檢查

<security mode="Transport"> 
    <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /> 
</security> 

WCF客戶端在同一臺服務器上運行。

服務器證書來加密通信(大概也沒關係)

我實現了一個簡單的測試程序。一切正常。

但是,當我在我們的產品中實現它時,客戶端無法登錄。在事件日誌中我看到一個審覈失敗:

Failure Information: 
Failure Reason: An Error occured during Logon 
Status: 0xc000006d 
Sub Status: 0x0 

谷歌搜索我所在這個頁面的解決方法:http://support.microsoft.com/kb/896861

在註冊表禁用環回檢查之後,登錄成功。

但我不想在生產環境中禁用環回檢查安全性。我需要找出造成這個問題的原因。

我的問題是:爲什麼我的測試程序能正常工作,但暴露多個端點的產品遇到了環回檢查安全問題?是否有一些WCF組件/配置導致此問題?


更多信息:爲了測試,我創建了一個簡單的wcf客戶端來對付我的產品。在啓用環回檢查的情況下,成功驗證測試客戶端呼叫。在我看來,問題出在wcf客戶端...任何想法?

回答

0

發現我的問題:我使用CN =「WCF安全性」的自簽名證書。服務器和客戶端上的端點有「身份」定義爲:

<identity> 
    <dns value="WCF Security" /> 
</identity> 

更改爲

<dns value="localhost" /> 

,甚至完全消除「身份」後,登錄成功,現在沒有禁用環回檢查安全。

雖然我不完全瞭解端點標識和證書CN之間的關係。