次の方法で共有


メタデータの公開

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 には、WCF プログラミング モデルの一部として使用できる、このサービス コントラクト名を持つ IMetadataExchange インターフェイスが含まれています。 WS-MetadataExchange エンドポイント (MEX エンドポイント) は、静的ファクトリ メソッドが MetadataExchangeBindings クラスで公開する 4 つの既定のバインドのいずれかを使用して、Svcutil.exeなどの WCF ツールで使用される既定のバインドと一致させることができます。 独自のカスタム バインドを使用して MEX メタデータ エンドポイントを構成することもできます。

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

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

このセクションにて

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

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

リファレンス

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

こちらも参照ください