ServiceHealthBehavior クラス

定義

正常性エンドポイントを提供するWindows Communication Foundation (WCF) サービスの動作を提供します。

public ref class ServiceHealthBehavior : System::ServiceModel::Description::ServiceHealthBehaviorBase
public class ServiceHealthBehavior : System.ServiceModel.Description.ServiceHealthBehaviorBase
type ServiceHealthBehavior = class
    inherit ServiceHealthBehaviorBase
Public Class ServiceHealthBehavior
Inherits ServiceHealthBehaviorBase
継承
ServiceHealthBehavior

注釈

正常性エンドポイントは、コンポーネントの正常性を評価する正常性チェックを実行するために使用されます。 正常性エンドポイントは、次の目的で使用できます。

  • 重大な正常性チェックに失敗しているプロセスを強制終了するようにオーケストレーション ツールに通知します。

  • サービスの可用性とパフォーマンスに関するアラートを追跡して提供することで、ツールを監視するための早期の問題インジケーターとして機能します。

ServiceHealthBehavior は、IServiceBehavior を拡張し、 ServiceHealthBehaviorBaseから派生する WCF サービス動作です。 ServiceHealthBehavior コレクションにServiceDescription.Behaviors インスタンスを追加すると、次のことが可能になります。

  • サービス正常性の公開: サービスの状態、スロットル数、容量などのサービス固有の詳細は、http/GET 要求と ?health クエリ文字列を使用して表示できます。 表示される情報を把握し、簡単にアクセスすることは、不適切な動作をする WCF サービスをトラブルシューティングする際に最も重要です。

  • HTTP 応答コードの戻り値: クエリ文字列で、HTTP/GET 正常性プローブ要求の HTTP 状態コードを指定できます。

正常性エンドポイントは、正常性を監視するコンポーネントのコンテキストでのみ意味があります。 他の意味や目的はありません。 そのため、その正常性は、コンポーネントの正常性への導管です。 クライアントは、正常性エンドポイントによって返される HTTP 応答コードがコンポーネント全体に適用されると想定する 必要があります 。 これは、ロード バランサー、サービス検出など、正常性チェックを利用する現在のインフラストラクチャ ツールで想定される動作と互換性があります。

正常性エンドポイントを有効にする

正常性エンドポイントを公開し、WCF サービスの正常性情報を公開する方法を指定するには、次の 2 つの方法があります。

  • 構成ファイルを使用する。 例えば次が挙げられます。

    <behaviors>
       <serviceBehaviors>
         <behavior name="DefaultBehavior">
           <serviceHealth httpGetEnabled="true"/>
         </behavior>
       </serviceBehaviors>
    </behaviors>
    
  • プログラムによって自動的に。 次のコード フラグメントでは、C# を使用して正常性エンドポイントを公開しています。

    ServiceHost host = new ServiceHost(typeof(Service1),
        new Uri("http://jconde-dev1:81/Service1"));
    ServiceHealthBehavior healthBehavior =
                host.Description.Behaviors.Find<ServiceHealthBehavior>();
    if (healthBehavior == null)
    {
        healthBehavior = new ServiceHealthBehavior();
    }
    //healthBehavior.HttpGetEnabled = false;
    //healthBehavior.HttpsGetEnabled = false;
    host.Description.Behaviors.Add(healthBehavior);
    

コンストラクター

名前 説明
ServiceHealthBehavior()

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

プロパティ

名前 説明
HasXmlSupport

XML 応答メッセージがサポートされているかどうかを示す値を取得します。

HealthDetailsEnabled

正常性エンドポイントがサービスの詳細を返す必要があるかどうか、または応答にコンテンツを含める必要があるかどうかを指定する値を取得または設定します。

(継承元 ServiceHealthBehaviorBase)
HttpGetBinding

HTTP/Get 要求を使用して正常性を取得するために使用されるバインディングを取得または設定します。

(継承元 ServiceHealthBehaviorBase)
HttpGetEnabled

HTTP/Get 要求を使用して取得するサービス メタデータを発行するかどうかを指定する値を取得または設定します。

(継承元 ServiceHealthBehaviorBase)
HttpGetUrl

HTTP/Get 要求を使用して取得するためにメタデータを発行するアドレスを指定する URI を取得または設定します。

(継承元 ServiceHealthBehaviorBase)
HttpsGetBinding

HTTPS/Get 要求を使用して正常性を取得するために使用されるバインディングを取得または設定します。

(継承元 ServiceHealthBehaviorBase)
HttpsGetEnabled

HTTPS/Get 要求を使用して取得するサービス メタデータを発行するかどうかを指定する値を取得または設定します。

(継承元 ServiceHealthBehaviorBase)
HttpsGetUrl

HTTPS/Get 要求を使用して取得するためにメタデータを発行するアドレスを指定する URI を取得または設定します。

(継承元 ServiceHealthBehaviorBase)
ServiceStartTime

正常性チェック サービスが開始された日時を取得します。

(継承元 ServiceHealthBehaviorBase)

メソッド

名前 説明
AddHttpProperty(Message, HttpStatusCode, Boolean)

応答メッセージのコンテンツ タイプと HTTP 状態コードを設定します。

EnsureHttpStatusCode(Int32)

HTTP 状態コードが 200 と 599 の範囲内であることを確認します(含む)。

Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetHttpResponseCode(ServiceHostBase, String[])

クエリ文字列フィールドを解析し、定義された HTTP 応答コードを返します。

GetServiceHealthSections(ServiceHostBase)

ServiceHealthSectionで定義されているServiceHealthBehavior オブジェクトのコレクションを取得します。

GetType()

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

(継承元 Object)
GetXmlDocument(ServiceHostBase)

指定したServiceHealthModelに関連付けられているserviceHost オブジェクトをシリアル化し、XML 形式で返します。

HandleHealthRequest(ServiceHostBase, Message, String[], Message)

指定した要求に対する応答メッセージを返します。

MemberwiseClone()

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

(継承元 Object)
ToString()

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

(継承元 Object)
TryParseBooleanQueryParameter(String, String, Boolean, Boolean)

ブール型クエリ文字列パラメーターの解析を試み、解析操作が成功したかどうかを示す値を返します。

TryParseHttpStatusCodeQueryParameter(String, String, HttpStatusCode, HttpStatusCode)

クエリ文字列変数の HTTP 状態コードの解析を試み、解析操作が成功したかどうかを示す値を返します。

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

名前 説明
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

カスタム データをバインディング要素に渡して、連絡先の実装をサポートします。

(継承元 ServiceHealthBehaviorBase)
IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

実行時プロパティの値を変更するか、エラー ハンドラー、メッセージまたはパラメーター インターセプター、セキュリティ拡張機能、その他のカスタム拡張オブジェクトなどのカスタム拡張オブジェクトを挿入します。

(継承元 ServiceHealthBehaviorBase)
IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

サービス ホストとサービスの説明を調べて、サービスが正常に実行できることを確認します。

(継承元 ServiceHealthBehaviorBase)

適用対象