方法: Svcutil.exe を使用してメタデータ ドキュメントをダウンロードする
Svcutil.exe を使用すると、実行中のサービスからメタデータをダウンロードして、ローカル ファイルに保存できます。 URL スキームが HTTP および HTTPS の場合は、Svcutil.exe により、メタデータの抽出に WS-MetadataExchange および XML Web サービス検索の使用が試行されます。 その他の URL スキームの場合、Svcutil.exe は WS-MetadataExchange のみを使用します。
既定で、Svcutil.exe は MetadataExchangeBindings クラスに定義されているバインディングを使用します。 WS-MetadataExchange で使用するバインディングを構成するには、Svcutil.exe の構成ファイル (svcutil.exe.config) でクライアント エンドポイントを定義する必要があります。このとき、クライアント エンドポイントが IMetadataExchange
コントラクトを使用し、メタデータ エンドポイントのアドレスの URI (Uniform Resource Identifier) スキームと同じ名前を持つように定義します。
注意事項
Svcutil.exe を実行して、それぞれに同じ名前の操作が含まれている 2 つの異なるサービス コントラクトを公開するサービスのメタデータを取得すると、Svcutil.exe により、"... からメタデータを取得できません" というエラーが表示されます。たとえば、Get(Car c)
操作を含む ICarService
という名前のサービス コントラクトを公開するサービスがあり、その同じサービスにより、Get(Book b)
操作を含む IBookService
という名前のサービス コントラクトが公開される場合などです。 この問題を回避するには、次のいずれかのようにします。
Svcutil.exe を使用してメタデータをダウンロードするには
次の場所で Svcutil.exe ツールを検索します。
C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin
コマンド プロンプトで、次の形式を使用してツールを起動します。
svcutil.exe /t:metadata <url>* | <epr>
メタデータをダウンロードするには
/t:metadata
オプションを指定する必要があります。 このオプションを指定しないと、クライアントのコードと構成が生成されます。<url>
引数には、メタデータを提供するサービス エンドポイントまたはオンラインでホストされているメタデータ ドキュメントの URL を指定します。<epr>
引数には、WS-MetadataExchange をサポートするサービス エンドポイント用の WS-AddressingEndpointAddress
を含む XML ファイルのパスを指定します。
メタデータのダウンロードにこのツールを使用する方法の詳細については、「ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe)」を参照してください。
例
次のコマンドにより、実行中のサービスからメタデータ ドキュメントがダウンロードされます。
svcutil /t:metadata http://service/metadataEndpoint