WCF分布式開發常見錯誤(28):The requested upgrade is not supported by...
今天在調試WCF4.0 Routing 路由服務例子代碼的時候,啟動用戶端測試WCF 路由服務,遇到這個錯誤。
因為網上資料很少,目前搜尋不到任何中文資料。英文資料也十分少, google.com搜尋的串連也被屏蔽了,不能訪問。所以把這個問題的解決辦法發出 來,共大家參考,希望對後來遇到類似錯誤的人一個參考。
【1】調試環境:
1)作業系統:Windows XP 專業版
2)IDE環境:Visual Studio 2010 Beta2
3)Framework: .NET Framework 4.0
【2】錯誤資訊:
Error : The requested upgrade is not supported by 'net.tcp://localhost:9002/WCFServiceB'. This could be due to mismatched bindings (for example security enabled on the client and not on the server).
錯誤:服 'net.tcp://localhost:9002/WCFServiceB'不支援要求升級。這可 能是由於綁定不匹配導致的錯誤(例如用戶端啟用安全,而伺服器沒有。)。
【3】錯誤截圖:
運行時用戶端拋出的英文異常資訊如下圖所示:
【4】問題分析:
這個錯誤的原因,在異常資訊裡有部分提示:可能綁定不匹配導致的錯誤。
1)用戶端和服務端安全模式不同,例如用戶端啟用安全,而服務端沒有啟用 安全;
2)用戶端和服務端編碼模式不同;導致無法匹配錯誤資訊。
3)用戶端和服務端SOAP版本不同。也可能導致問題。
4)用戶端和服務端事務設定不同等等。
都可能導致這個錯誤。我們先來檢查服務端和用戶端的配置,探索服務端沒 啟用安全,而路由服務在對於用戶端綁定的配置使用的是預設的設定,也就是啟 用了傳輸安全模式。