HOW TO:使用程式碼發行服務的中繼資料

本文是兩個討論發行 Windows Communication Foundation (WCF) 服務中繼資料的「HOW TO」主題中的其中一個。有兩種方式可指定服務應該發行中繼資料,分別是透過組態檔與程式碼。本主題說明如何透過程式碼發行服務中繼資料。如需 透過組態檔發行中繼資料的詳細資訊,請參閱 HOW TO:使用組態檔發行服務的中繼資料。發行中繼資料可讓用戶端透過 WS-Transfer GET 要求,或是透過使用 ?wsdl 查詢字串的 HTTP/GET 要求來擷取中繼資料。若要確定程式碼可以運作,您必須建立基本的 WCF 服務。下列程式碼提供您基本的自我裝載服務。

若要透過程式碼發行中繼資料

  1. 在主控台應用程式的 main 方法中,傳入服務類型與基底位址來產生 ServiceHost 物件。

  2. 在步驟 1 的程式碼底下,立即建立 try 區塊,以便在執行服務時,攔截任何擲回的例外狀況。

  3. 檢查服務主機是否已包含 ServiceMetadataBehavior,如果沒有的話,建立新的 ServiceMetadataBehavior 執行個體。

  4. HttpGetEnabled 屬性設定為 true.

  5. ServiceMetadataBehavior 會包含 MetadataExporter 屬性。MetadataExporter 會包含 PolicyVersion 屬性。將 PolicyVersion 屬性值設定為 Policy15PolicyVersion 屬性也可以設為 Policy12。一旦設為 Policy15,中繼資料匯出工具會使用符合 WS-Policy 1.5 的中繼資料來產生原則資訊。一旦設為 Policy12,中繼資料匯出工具會產生符合 WS-Policy 1.2 的原則資訊。

  6. ServiceMetadataBehavior 執行個體新增至服務主機的行為集合中。

  7. 將中繼資料交換端點新增至服務主機。

  8. 將應用程式端點新增至服務主機。

  9. 開啟服務主機並等候傳入呼叫。當使用者按下 ENTER 鍵時,關閉服務主機。

  10. 建置並執行主控台應用程式。

  11. 使用 Internet Explorer 瀏覽至服務的基底位址 (此範例中為 https://localhost:8001/MetadataSample),然後確認已開啟中繼資料發行功能。您應該會看到頁面上方標示「簡易服務」,且在其下跟著「您已建立服務」的網頁。如果沒有的話,結果頁面上方應該會顯示:「為此服務發行的中繼資料目前停用」。

範例

下列程式碼範例說明可透過程式碼發行服務中繼資料的基本 WCF 服務實作。

請參閱

工作

HOW TO:在 Managed 應用程式中裝載 WCF 服務
HOW TO:使用組態檔發行服務的中繼資料

概念

中繼資料架構概觀
使用中繼資料

其他資源

Self-Host