Dot-Net
WCF 中的 Web 服務發現:Ws-Discovery 還是 UDDI?
我知道 UDDI 和 Ws-Discovery 之間的區別(很清楚搜尋服務與廣播的位置)。但我的問題是:在 WCF 中發現 Web 服務的最簡單方法是什麼?最簡單的意思是什麼已經在 WCF 中實現並且現在可以使用?我沒有在 WCF 中看到任何用於 UDDI 或 Ws-Discovery 的內置實現。
關於 WCF 中的這兩個協議,您有任何連結或經驗可以分享嗎?
更新
現在我正在考慮三種解決方案,等待 .NET 4.0 上的 WS-discovery,或者使用 WCF 提供的 Peer to Peer 綁定創建我自己的發現綁定。這樣我可以廣播一個請求。或者使用eed3si9n的連結提供的實現。
我想我會做一個網關介面,以便稍後輕鬆更改實現。
.NET 4.0 將具有 WS-Discovery。請參閱.NET 4.0 中的消息傳遞增強:(發現部分 I) 在 WCF 4.0 中使用 WS-Discovery。與此同時,Claudio Masieri 提供了一個實現。請參閱WCF 的 WS-Discovery。
還有一個以與 UDDI 類似的方式完成的自定義發現實現。請參閱Windows 通信服務發現。
想像一下,您有 200 個客戶使用您的時髦 Wcf 服務。他們都會在他們的 conf 文件中有一個像這樣的部分:
<client> <endpoint configurationName="default" address="http://localhost/servicemodelsamples/service.svc" binding="wsHttpBinding" bindingConfiguration="Binding1" contract="IDataContractCalculator" /> </client> <bindings> <wsHttpBinding> <binding configurationName="Binding1" /> </wsHttpBinding> </bindings>現在,出於安全原因,您決定使用使用 SSL 的新端點更改現有端點(伺服器端)。你如何更新你的客戶?您可以很快看到它會變得乏味。所以我想在這裡詳細介紹的想法是實現一個類似於 UDDI 所做的發現服務,並使用元數據解析器從服務中獲取配置,以便動態創建一個代理,允許客戶端與服務進行討論。
此人與您有類似的擔憂,並且似乎有一個可行的解決方案。