發行中繼資料
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 為中繼資料發行通訊協定提供實作。您也可以藉由存取 System.ServiceModel.Description.ServiceMetadataExtension.Metadata 屬性,使用 System.ServiceModel.Description.ServiceMetadataExtension 在執行階段取得服務的中繼資料。
MEX 中繼資料端點
若要加入使用 MEX 通訊協定的中繼資料端點,請將服務端點加入至使用 IMetadataExchange 服務合約的服務主機。WCF 包含使用此服務合約名稱的 IMetadataExchange 介面,您可以用它來做為 WCF 程式設計模型的一部分。WS-MetadataExchange 端點或 MEX 端點可以使用靜態處理站方法在 MetadataExchangeBindings 類別上所公開的四個預設繫結中的其中一個,以比對 WCF 工具 (例如 Svcutil.exe) 使用的預設繫結。您也可以使用自己的自訂繫結設定 MEX 中繼資料端點。
HTTP GET 中繼資料端點
若要將中繼資料端點加入至回應 HTTP/GET 要求的服務,請將 System.ServiceModel.Description.ServiceMetadataBehavior 上的 HttpGetEnabled 屬性設為 true。您也可以將 System.ServiceModel.Description.ServiceMetadataBehavior 上的 HttpsGetEnabled 屬性設為 true,以設定使用 HTTPS 的中繼資料端點。
本章節內容
- HOW TO:使用組態檔發行服務的中繼資料
示範如何設定 WCF 服務來發行中繼資料,以便讓用戶端能夠使用 ?wsdl 查詢字串透過 WS-MetadataExchange 或 HTTP/GET 要求擷取中繼資料。
- HOW TO:使用程式碼發行服務的中繼資料
示範如何在程式碼中啟用 WCF 服務的中繼資料發行,以便讓用戶端能夠使用 ?wsdl 查詢字串透過 WS-MetadataExchange 或 HTTP/GET 要求擷取中繼資料。
參考
ServiceMetadataBehavior
IMetadataExchange
ServiceMetadataExtension
MetadataExchangeBindings