WCF分散式開發常見錯誤(27):Securechannelcannotbeopened
這個問題是周巨集偉在除錯WCF分散式安全開發實踐(12):訊息安全模式之自定義X509證書驗證:Message_CustomX509Certificate_WSHttpBinding 。發現並提出來的,我幫助除錯,找到了問題的解決辦法。發出來一起分享給大家。
【1.問題描述】:
1.專案型別:IIS託管的WCF服務。
2.安全型別:訊息安全模式+ 自定義X509證書驗證。+WSHttpBinding :Message_CustomX509Certificate_WSHttpBinding
3.客戶端型別:ASP.NET 網站。
4.錯誤資訊:Secure channel cannot be opened because security negotiation with the remote endpoint has failed. This may be due to absent or incorrectly specified EndpointIdentity in the EndpointAddress used to create the channel. Please verify the EndpointIdentity specified or implied by the EndpointAddress correctly identifies the remote endpoint.
安全通道無法開啟,因為安全與遠端終結點協商已經失敗。這可能是由於在EndpointAddress 缺少或不正確指定用於建立通道的EndpointIdentity。請驗證EndpointIdentity指定或暗示的EndpointAddress正確標識遠端終結點。
安全通道無法開啟,因為安全與遠端終結點協商已經失敗。這可能是由於在EndpointAddress 缺少或不正確指定用於建立通道的EndpointIdentity。請驗證EndpointIdentity指定或暗示的EndpointAddress正確標識遠端終結點。
5.錯誤截圖:
【2.問題分析】:
導致這個問題的可能原因有2個:
(1)沒有服務端配置安全選項。
(2)服務沒有啟動。
網上的同樣的問題也很多,但是沒有什麼幫助。這裡針對2個Web型別的應用專案。在除錯的時候容易出現這樣的問題。
【3.解決方案】:
原因(1):
檢查服務配置,證書設定:
<wsHttpBinding>
<binding name=”MyBindingConfigration”>
<security mode=”Message”>
<transport clientCredentialType=”None”/>
<message clientCredentialType=”Certificate”/>
</security>
</binding>
</wsHttpBinding>
<binding name=”MyBindingConfigration”>
<security mode=”Message”>
<transport clientCredentialType=”None”/>
<message clientCredentialType=”Certificate”/>
</security>
</binding>
</wsHttpBinding>
原因(2):由於一個解決方案裡包含2個專案,所以要保證服務啟動。步驟如下:
這個問題的關鍵在於,你雖然設定了證書,這裡錯誤提示是,與服務終結點協商失敗,原因不是證書。
是整數標識的服務,沒有啟動,導致協商錯誤。你右鍵-》Debug->啟動新的例項,先把服務啟動。
然後在右鍵-》Debug->啟動新的客戶端專案例項。這樣單步除錯就通過了。
我把證書名稱換為我本機的證書,你記得根據自己的證書名稱修改配置檔案。
是整數標識的服務,沒有啟動,導致協商錯誤。你右鍵-》Debug->啟動新的例項,先把服務啟動。
然後在右鍵-》Debug->啟動新的客戶端專案例項。這樣單步除錯就通過了。
我把證書名稱換為我本機的證書,你記得根據自己的證書名稱修改配置檔案。
參考連結:
本文轉自 frankxulei 51CTO部落格,原文連結:http://blog.51cto.com/frankxulei/320966,如需轉載請自行聯絡原作者
相關文章
- WCF分散式開發常見錯誤(28):Therequestedupgradeisnotsupportedby…分散式
- Web開發常見性的錯誤Web
- Golang開發常見的57個錯誤Golang
- 開發常見錯誤及解決方案
- 10 大常見的web開發錯誤Web
- 蘋果開發幾個常見的錯誤蘋果
- MySQL 常見錯誤MySql
- oracle 常見錯誤Oracle
- 10個iOS開發常見錯誤,你中招了嗎iOS
- 處理ASP.Net開發常見Datagrid錯誤ASP.NET
- VS開發cocos2d-x常見錯誤
- Go 常見錯誤集錦 | 字串底層原理及常見錯誤Go字串
- Go常見錯誤集錦 | 字串底層原理及常見錯誤Go字串
- 常見的web錯誤Web
- mysql replication常見錯誤MySql
- 響應式原型的7個常見錯誤原型
- WCF分散式開發步步為贏(11):WCF流處理(Streaming)機制分散式
- 15個常見網站開發錯誤,誰都可能犯網站
- WCF分散式開發步步為贏(14):WCF安全程式設計–基本概念分散式程式設計
- Swap函式的寫法及其常見錯誤示例函式
- WCF分散式開發步步為贏(0):WCF學習經驗分享,如何更好地學習WCF?薦分散式
- MySQL 安裝常見錯誤MySql
- mysql8 常見錯誤MySql
- 常見的錯誤 SQL 用法SQL
- Oracle之Rman常見錯誤Oracle
- MySQL Replication常見錯誤整理MySql
- Hadoop常見錯誤2Hadoop
- opencv 編譯常見錯誤OpenCV編譯
- react-native啟動開發常見錯誤(持續更新)React
- 常見的5個區塊鏈應用開發錯誤理解區塊鏈
- 9種常見的Android開發錯誤及解決方案Android
- Web開發人員最易犯下的十種常見錯誤Web
- Go常見錯誤第15篇:interface使用的常見錯誤和最佳實踐Go
- 5 個常見的 Rails 開發誤區AI
- 9個常見的Android開發錯誤及解決辦法Android
- [分散式][Dubbo]Dubbo常見問題分散式
- 8種常見SQL錯誤用法SQL
- 搭建github部落格常見錯誤Github