作法:使用 Svcutil.exe 來下載中繼資料文件

您可以使用 Svcutil.exe 從正在執行的服務下載中繼資料,並將該中繼資料儲存至本機檔案。 對於 HTTP 和 HTTPS URL 配置,Svcutil.exe 會嘗試使用 WS-MetadataExchange 和 XML Web Service 探索來擷取中繼資料。 對於所有其他的 URL 配置,Svcutil.exe 只會使用 WS-MetadataExchange。

根據預設,Svcutil.exe 會使用定義於 MetadataExchangeBindings 類別的繫結。 若要設定用於 WS-MetadataExchange 的繫結,您必須在 Svcutil.exe 的組態檔 (svcutil.exe.config) 中定義用戶端端點,該端點會使用 IMetadataExchange 合約,而且使用名稱就是中繼資料端點位址的統一資源識別元 (URI) 配置。

警告

當執行 Svcutil.exe 來取得某個服務的中繼資料 (而該服務公開了兩個不同的服務合約,每個服務合約都包含同名的作業) 時,Svcutil.exe 會顯示一個錯誤,指出「無法從 .... 獲取中繼資料」例如,如果您有一個服務公開了名為 ICarService 的服務合約,其中包含作業 Get(Car c),而同一個服務又公開了名為 IBookService 的服務合約,其中包含作業 Get(Book b)。 若要解決這個問題,請執行下列其中一個動作:

  • 重新命名其中一項作業。
  • Name 設定為另一個名稱。
  • 使用 Namespace 屬性,將其中一項作業的命名空間設定為另一個命名空間。

使用 Svcutil.exe 來下載中繼資料

  1. 在下列位置找到 Svcutil.exe 工具:

    C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin

  2. 在命令提示字元中,使用下列格式啟動該工具。

    svcutil.exe /t:metadata  <url>* | <epr>  
    

    您必須指定 /t:metadata 選項才能下載中繼資料。 否則,便會產生用戶端程式碼與組態。

  3. <url> 引數會指定要提供中繼資料之服務端點的 URL,或是線上裝載之中繼資料文件的 URL。 <epr> 引數會指定 XML 檔案的路徑,該檔案包含支援 WS-MetadataExchange 之服務端點的 WS-Addressing EndpointAddress

如需使用此工具來下載中繼資料的詳細資訊,請參閱 ServiceModel 中繼資料公用程式工具 (Svcutil.exe)

範例

下列命令會從正在執行的服務下載中繼資料文件。

svcutil /t:metadata http://service/metadataEndpoint  

另請參閱