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 サービスの動作です。 コレクションにインスタンスをServiceHealthBehaviorServiceDescription.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)

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

GetType()

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

(継承元 Object)
GetXmlDocument(ServiceHostBase)

指定された serviceHost に関連付けられた ServiceHealthModel オブジェクトをシリアル化して、それを 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)

適用対象