次の方法で共有


メタデータの公開

Windows Communication Foundation (WCF) サービスは、1 つまたは複数のメタデータ エンドポイントを公開することでメタデータを公開します。 サービス メタデータを公開すると、そのメタデータで WS-MetadataExchange (MEX) や HTTP/GET 要求などの標準化プロトコルを使用できるようになります。 メタデータのエンドポイントはアドレス、バインディング、コントラクトを持つ他のサービス エンドポイントに類似し、それらは構成か命令コードを使用してサービス ホストに追加することができます。

メタデータ エンドポイントを公開する

WCF サービスのメタデータ エンドポイントを公開するには、最初に ServiceMetadataBehavior サービスの動作をサービスに追加しておく必要があります。 System.ServiceModel.Description.ServiceMetadataBehavior インスタンスを追加すると、サービスからメタデータ エンドポイントを公開できます。 System.ServiceModel.Description.ServiceMetadataBehavior サービス動作を追加すると、MEX プロトコルをサポートするメタデータ エンドポイント、または HTTP/GET 要求に応答するメタデータ エンドポイントを公開できます。

System.ServiceModel.Description.ServiceMetadataBehaviorWsdlExporter を使用して、サービス内のすべてのサービス エンドポイント用のメタデータをエクスポートします。 サービスからメタデータをエクスポートする方法の詳細については、「メタデータのエクスポートとインポート」を参照してください。

System.ServiceModel.Description.ServiceMetadataBehavior は、ServiceMetadataExtension インスタンスをサービス ホストへの拡張として追加します。 System.ServiceModel.Description.ServiceMetadataExtension により、メタデータ公開プロトコルを実装することができます。 また、System.ServiceModel.Description.ServiceMetadataExtension を使用して、ServiceMetadataExtension.Metadata プロパティにアクセスすると、実行時にサービスのメタデータを取得できます。

MEX メタデータ エンドポイント

MEX プロトコルを使用するメタデータ エンドポイントを追加するには、IMetadataExchange サービス コントラクトを使用するサービス エンドポイントをサービス ホストに追加します。 WCF には、このサービス コントラクト名を持つ IMetadataExchange インターフェイスが含まれており、これを、WCF プログラミング モデルの一部として使用することができます。 WS-MetadataExchange のエンドポイント、つまり、MEX エンドポイントは、MetadataExchangeBindings クラスで静的ファクトリ メソッドが公開する 4 つの既定のバインディングの 1 つを使用して、WCF ツール (Svcutil.exe など) によって使用される既定のバインディングを照合できます。 また、独自のカスタム バインドを使用して MEX メタデータ エンドポイントを構成することもできます。

HTTP GET メタデータ エンドポイント

HTTP/GET 要求に応答するメタデータ エンドポイントをサービスに追加するには、HttpGetEnabledSystem.ServiceModel.Description.ServiceMetadataBehavior プロパティを true に設定します。 また、HttpsGetEnabledSystem.ServiceModel.Description.ServiceMetadataBehavior プロパティを true に設定することで、HTTPS を使用するメタデータ エンドポイントを構成することもできます。

このセクションの内容

方法: 構成ファイルを使用してサービスのメタデータを公開する
WCF サービスを構成してメタデータを公開し、?wsdl クエリ文字列を使用した WS-MetadataExchange または HTTP/GET 要求によりメタデータをクライアントが取得できるようにする方法を示します。

方法: コードを使用してサービスのメタデータを公開する
コードを使用して WCF サービスのメタデータの公開を有効にして、クライアントが ?wsdl クエリ文字列を使用した WS-MetadataExchange または HTTP/GET 要求によりメタデータを取得できるようにする方法を示します。

関連項目

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

関連項目