ServiceMetadataBehavior クラス

定義

サービス メタデータと関連情報の公開を制御します。

public ref class ServiceMetadataBehavior : System::ServiceModel::Description::IServiceBehavior
public class ServiceMetadataBehavior : System.ServiceModel.Description.IServiceBehavior
type ServiceMetadataBehavior = class
    interface IServiceBehavior
Public Class ServiceMetadataBehavior
Implements IServiceBehavior
継承
ServiceMetadataBehavior
実装

構成ファイルで ServiceMetadataBehavior を使用して HTTP/GET および WS-Transfer/GET 要求のメタデータ サポートを有効にする方法を次のコード例に示します。

        // Create a new metadata behavior object and set its properties to
        // create a secure endpoint.
        ServiceMetadataBehavior sb = new ServiceMetadataBehavior();
        //sb.EnableHelpPage= true;
        //sb.HttpsGetUrl = new Uri("https://myMachineName:8036/myEndpoint");
        //myServiceHost.Description.Behaviors.Add(sb);
    }

      private void SnippetServiceMetadataBehavior()
      {
          // service for which <<indigo2>> automatically adds a
          // ServiceMetadataBehavior to publish metadata as well as
          // an HTML service help page

          // from C_HowToSecureEndpoint\cs
          // Create a new metadata behavior object and set its properties to
          // create a secure endpoint.
          ServiceMetadataBehavior sb = new ServiceMetadataBehavior();
/*          sb.EnableHelpPage = true;
          sb.enableMetadataExchange = true;
          sb.HttpsGetUrl = new Uri("https://myMachineName:8036/myEndpoint");
          myServiceHost.Description.Behaviors.Add(sb);
 */
      }

    private void Run()
    {

      // T:System.ServiceModel.ServiceMetadataBehavior
      // <Snippet#0>

      // Create a ServiceHost for the service type and use the base address from configuration.
      ServiceHost host = new ServiceHost(typeof(SampleService));
      try
      {
        ServiceMetadataBehavior metad
          = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
        if (metad == null)
          metad = new ServiceMetadataBehavior();
        metad.HttpGetEnabled = true;
        host.Description.Behaviors.Add(metad);
        host.AddServiceEndpoint(
          ServiceMetadataBehavior.MexContractName,
          MetadataExchangeBindings.CreateMexHttpBinding(),
          "mex"
        );

        // The service can now be accessed.
        Console.WriteLine("The service is ready.");
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();

        // Close the ServiceHostBase to shutdown the service.
        host.Close();

        // </Snippet#0>

注釈

オブジェクトをServiceMetadataBehaviorServiceDescription.Behaviorsコレクション (または<アプリケーション構成ファイルの serviceMetadata> 要素) に追加して、サービス メタデータの公開を有効または無効にします。 ただし、サービスに動作を追加するだけではメタデータの公開を有効にできません。

  • WS-Transfer GET によるメタデータの取得を有効にするには、さらに、コントラクトが IMetadataExchange であるエンドポイントをサービスに追加する必要があります。 例については、「 方法: コードを使用してサービスのメタデータを発行する」を参照してくださいIMetadataExchange エンドポイントは他のエンドポイントと同様に構成できます。

  • HTTP GET によるメタデータの取得を有効にするには、HttpGetEnabled プロパティを true に設定します。 HTTP GET メタデータのアドレスの詳細については、次を参照してください HttpGetEnabled

エンドポイントのアドレスは、 IMetadataExchange ベース アドレスとエンドポイント アドレスの組み合わせに関する通常の規則に従います。 詳細については、「 メタデータの発行」を参照してください。

構成ファイルを使用してメタデータの公開を有効にするには、serviceMetadata> 要素を serviceBehaviors 要素に追加し、メタデータを発行するサービス要素に要素を関連付けます。< <> <> 例については、「 方法: 構成ファイルを使用してサービスのメタデータを発行する」を参照してください。 このクラスには、次のメンバーがあります。

  • HttpGetEnabled プロパティ。HTTP/GET 要求に対してメタデータが返されるかどうかを指定します。

  • HttpGetUrl プロパティ。ベース アドレスと組み合わせて使用され、HTTP/GET アドレスを指定します。

  • HttpsGetEnabled プロパティ。HTTPS/GET 要求に対してメタデータが返されるかどうかを指定します。

  • HttpsGetUrl プロパティ。ベース アドレスと組み合わせて使用され、HTTPS/GET アドレスを指定します。

  • MetadataExporter プロパティ。基になるエクスポーターを返します。

通常、ServiceMetadataBehavior はアプリケーション設定ファイルから使用されます。 コード例については、「使用例」のセクションを参照してください。

コンストラクター

ServiceMetadataBehavior()

ServiceMetadataBehavior クラスの新しいインスタンスを初期化します。

フィールド

MexContractName

文字列 IMetadataContract を返します。

プロパティ

ExternalMetadataLocation

サービス メタデータの位置である値を取得または設定します。

HttpGetBinding

トランスポートが HTTP の場合に、メタデータの取得を構成するために使用するバインディングを取得または設定します。

HttpGetEnabled

HTTP/GET 要求を使用した取得用にサービス メタデータを公開するかどうかを示す値を取得または設定します。

HttpGetUrl

HTTP/GET 要求に対するメタデータ公開の場所を取得または設定します。

HttpsGetBinding

トランスポートが HTTPS の場合に、メタデータの取得を構成するために使用するバインディングを取得または設定します。

HttpsGetEnabled

HTTPS/GET 要求を使用した取得用にサービス メタデータを公開するかどうかを示す値を取得または設定します。

HttpsGetUrl

HTTPS/GET 要求に対するメタデータ公開の場所を取得または設定します。

MetadataExporter

サービス メタデータを公開するために使用する内部 MetadataExporter オブジェクトを取得または設定します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

基になるバインディングを、動作をサポートするように構成する IServiceBehavior の実装です。

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

基になるバインディングを、サービスの動作をサポートするように構成する IServiceBehavior の実装です。

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

サービスの説明が動作をサポートできることを検証する IServiceBehavior の実装です。

適用対象