分享方式:


發行中繼資料

Windows Communication Foundation (WCF) 服務會藉由發佈一或多個中繼資料端點來發佈中繼資料。 發行服務中繼資料會使用標準化的通訊協定 (例如 WS-MetadataExchange (MEX) 和 HTTP/GET 要求) 來提供中繼資料。 中繼資料端點與其他服務端點相似的地方,在於兩者都有位址、繫結程序和合約,並且能夠透過組態或命令式程式碼新增至服務主機。

發行中繼資料端點

若要發行 WCF 服務的中繼資料端點,您必須先將 ServiceMetadataBehavior 服務行為加入服務。 加入 System.ServiceModel.Description.ServiceMetadataBehavior 執行個體可讓您的服務公開中繼資料端點。 一旦您加入 System.ServiceModel.Description.ServiceMetadataBehavior 服務行為之後,就可以接著公開支援 MEX 通訊協定或回應 HTTP/GET 要求的中繼資料端點。

System.ServiceModel.Description.ServiceMetadataBehavior 會使用 WsdlExporter 匯出服務中所有服務端點的中繼資料。 如需詳細瞭解如何從服務匯出中繼資料,請參閱匯出與匯入中繼資料

System.ServiceModel.Description.ServiceMetadataBehavior 會加入 ServiceMetadataExtension 執行個體做為服務主機的延伸。 System.ServiceModel.Description.ServiceMetadataExtension 為中繼資料發行通訊協定提供實作。 您也可以藉由存取 ServiceMetadataExtension.Metadata 屬性,使用 System.ServiceModel.Description.ServiceMetadataExtension 取得服務在執行階段的中繼資料。

MEX 中繼資料端點

若要加入使用 MEX 通訊協定的中繼資料端點,請將服務端點加入至使用 IMetadataExchange 服務合約的服務主機。 WCF 包含使用此服務合約名稱的 IMetadataExchange 介面,可當作 WCF 程式設計模型的一部分來使用。 WS-MetadataExchange 端點或 MEX 端點可以使用靜態 Factory 方法對 MetadataExchangeBindings 類別公開的四個預設繫結中的其中一個,藉此比對 WCF 工具 (例如 Svcutil.exe) 使用的預設繫結。 您也可以使用自己的自訂繫結設定 MEX 中繼資料端點。

HTTP GET 中繼資料端點

若要將中繼資料端點加入至回應 HTTP/GET 要求的服務,請將 HttpGetEnabled 上的 System.ServiceModel.Description.ServiceMetadataBehavior 屬性設為 true。 您也可以將 HttpsGetEnabled 上的 System.ServiceModel.Description.ServiceMetadataBehavior 屬性設為 true,以設定使用 HTTPS 的中繼資料端點。

本節內容

如何:使用組態檔發行服務的中繼資料
示範如何設定 WCF 服務來發佈中繼資料,以便讓用戶端能夠透過 WS-MetadataExchange 或採用 ?wsdl 查詢字串的 HTTP/GET 要求來擷取中繼資料。

如何:使用程式碼發行服務的中繼資料
示範如何在程式碼中啟用 WCF 服務的中繼資料發佈,以便讓用戶端能夠使用 ?wsdl 查詢字串透過 WS-MetadataExchange 或 HTTP/GET 要求擷取中繼資料。

參考

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

另請參閱