作法:使用 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)
。 若要解決這個問題,請執行下列其中一個動作:
使用 Svcutil.exe 來下載中繼資料
在下列位置找到 Svcutil.exe 工具:
C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin
在命令提示字元中,使用下列格式啟動該工具。
svcutil.exe /t:metadata <url>* | <epr>
您必須指定
/t:metadata
選項才能下載中繼資料。 否則,便會產生用戶端程式碼與組態。<url>
引數會指定要提供中繼資料之服務端點的 URL,或是線上裝載之中繼資料文件的 URL。<epr>
引數會指定 XML 檔案的路徑,該檔案包含支援 WS-MetadataExchange 之服務端點的 WS-AddressingEndpointAddress
。
如需使用此工具來下載中繼資料的詳細資訊,請參閱 ServiceModel 中繼資料公用程式工具 (Svcutil.exe)。
範例
下列命令會從正在執行的服務下載中繼資料文件。
svcutil /t:metadata http://service/metadataEndpoint