五分鐘了解WCF元數據交換
WCF還是比較常用的,于是我研究了一下WCF元數據交換,在這里拿出來和大家分享一下,希望對大家有用。知道了WCF服務元數據的概念后,我們就能理解為什么要暴露服務的元數據。WCF服務的元數據描述服務的核心信息,客戶端需要了解這些特征以便與該服務進行通信。
#T#要想實現異構平臺或者系統之間的通信,以前的技術是使用Web Service.因為其具有自描述、可擴展、與平臺無關等優勢??蛻舳酥恍枰鶕eb Service地址,便可獲取服務的相關信息,反序列話本地的代碼,通過服務代理進行服務的調用。
WCF服務主要特性之一就是跨平臺的服務交互。而暴露服務元數據的重要原因就是解決了異構客戶端服務交互的關鍵問題。 元數據基于XML,自描述??蛻舳丝梢愿鶕盏脑獢祿葱蛄袚Q生成本地代碼,無論是c#,vb還是java語。WCF服務有兩種方案可以發布自己的元數據。一種是基于HTTP-GET協議提供元數據;另一種則為MEX終結點元數據交換方式,和WCF服務一樣使用一個專門的終結點,稱為MEX元數據交換終結點。
- System.ServiceModel.Description命名空間里MetadataExchangeClientMode枚舉類型里進行了定義
- using System;
- namespace System.ServiceModel.Description
- {
- // Summary:
- // Specifies the exchange mode used to obtain metadata.
- public enum MetadataExchangeClientMode
- {
- // Summary:
- // A WS-Transfer Get request is used.
- MetadataExchange = 0,
- //
- // Summary:
- // An HTTP GET request is used.
- HttpGet = 1,
- }
- }
WCF元數據交換終結點與其它終結點相似,包含自己的地址(Address)、綁定(通信協議Binding)、契約(服務、操作、數據Contract),但是使用的服務契約為WCF提供的接口IMetadataExchange。兩種發布元數據的方式使用了兩種不同的標準網絡傳輸協議,前者為 HTTP/GET請求,后者為WS-MetadataExchange(MEX:WCF支持的基本綁定HTTP、HTTPS、TCP、IPC等綁定協議)。啟用WCF元數據交換服務后,必須顯式配置元數據交換行為。