メタデータの公開

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 を使用して、System.ServiceModel.Description.ServiceMetadataExtension.Metadata プロパティにアクセスすることにより、実行時にサービスのメタデータを取得できます。

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

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

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

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

このセクションの内容

リファレンス

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

参照

概念

メタデータのエクスポートとインポート