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