方法: 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 という名前のサービス コントラクトが公開される場合などです。 この問題を回避するには、次のいずれかのようにします。

  • 操作の名前を変更する。
  • 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 を指定します。 <epr> 引数には、WS-MetadataExchange をサポートするサービス エンドポイント用の WS-Addressing EndpointAddress を含む XML ファイルのパスを指定します。

メタデータのダウンロードにこのツールを使用する方法の詳細については、「ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe)」を参照してください。

次のコマンドにより、実行中のサービスからメタデータ ドキュメントがダウンロードされます。

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

関連項目