メタデータの公開
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.ServiceMetadataBehavior は WsdlExporter を使用して、サービス内のすべてのサービス エンドポイント用のメタデータをエクスポートします。 サービスからメタデータをエクスポートする方法の詳細については、「メタデータのエクスポートとインポート」を参照してください。
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 要求に応答するメタデータ エンドポイントをサービスに追加するには、HttpGetEnabled の System.ServiceModel.Description.ServiceMetadataBehavior プロパティを true
に設定します。 また、HttpsGetEnabled の System.ServiceModel.Description.ServiceMetadataBehavior プロパティを true
に設定することで、HTTPS を使用するメタデータ エンドポイントを構成することもできます。
このセクションの内容
方法: 構成ファイルを使用してサービスのメタデータを公開する
WCF サービスを構成してメタデータを公開し、?wsdl
クエリ文字列を使用した WS-MetadataExchange または HTTP/GET 要求によりメタデータをクライアントが取得できるようにする方法を示します。
方法: コードを使用してサービスのメタデータを公開する
コードを使用して WCF サービスのメタデータの公開を有効にして、クライアントが ?wsdl
クエリ文字列を使用した WS-MetadataExchange または HTTP/GET 要求によりメタデータを取得できるようにする方法を示します。