ServiceHealthBehavior Classe

Définition

Fournit un comportement de service WCF (Windows Communication Foundation) qui fournit un point de terminaison d’intégrité.

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
Héritage
ServiceHealthBehavior

Remarques

Les points de terminaison d’intégrité sont utilisés pour effectuer des vérifications d’intégrité qui évaluent l’intégrité d’un composant. Les points de terminaison d’intégrité peuvent être utilisés pour :

  • Notifier les outils d’orchestration pour arrêter un processus qui échoue à un contrôle d’intégrité critique.

  • Servir d’indicateur de problème précoce pour les outils de supervision en effectuant le suivi et en fournissant des alertes sur la disponibilité et les performances d’un service.

ServiceHealthBehavior est un comportement de service WCF qui étend IServiceBehavior et dérive de ServiceHealthBehaviorBase. L’ajout d’une ServiceHealthBehavior instance à la ServiceDescription.Behaviors collection permet les opérations suivantes :

  • Publication de Service Health : Les détails spécifiques au service, tels que l’état du service, le nombre de limitations et la capacité, peuvent être affichés à l’aide d’une requête HTTP/GET avec la chaîne de ?health requête. Connaître et accéder facilement aux informations affichées est d’une importance primordiale lors de la résolution des problèmes d’un service WCF qui se comporte mal.

  • Retour des codes de réponse HTTP : Vous pouvez spécifier dans la chaîne de requête le code d’état HTTP pour une requête de sonde d’intégrité HTTP/GET.

Un point de terminaison d’intégrité n’est significatif que dans le contexte du composant dont il surveille l’intégrité. Il n’a pas d’autre signification ou but. Par conséquent, son intégrité est un canal vers l’intégrité du composant. Les clients doivent supposer que le code de réponse HTTP retourné par le point de terminaison d’intégrité s’applique à l’ensemble du composant. Cela est compatible avec le comportement attendu par les outils infrastructurels actuels qui utilisent des contrôles d’intégrité, tels que les équilibreurs de charge, les découvertes de service, etc.

Activer un point de terminaison d’intégrité

Il existe deux façons de spécifier comment exposer le point de terminaison d’intégrité et publier les informations d’intégrité du service WCF :

  • À l’aide d’un fichier de configuration. Exemple :

    <behaviors>
       <serviceBehaviors>
         <behavior name="DefaultBehavior">
           <serviceHealth httpGetEnabled="true"/>
         </behavior>
       </serviceBehaviors>
    </behaviors>
    
  • Programmatiquement. Le fragment de code suivant utilise C# pour exposer le point de terminaison d’intégrité :

    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);
    

Constructeurs

ServiceHealthBehavior()

Initialise une nouvelle instance de la classe ServiceHealthBehavior.

Propriétés

HasXmlSupport

Obtient une valeur qui indique si les messages de réponse XML sont pris en charge.

HealthDetailsEnabled

Obtient ou définit une valeur qui spécifie si le point de terminaison d’intégrité doit retourner les détails du service ou si la réponse ne doit contenir aucun contenu.

(Hérité de ServiceHealthBehaviorBase)
HttpGetBinding

Obtient ou définit la liaison utilisée pour la récupération de l’intégrité par le biais d’une requête HTTP/Get.

(Hérité de ServiceHealthBehaviorBase)
HttpGetEnabled

Obtient ou définit une valeur qui indique si les métadonnées du service doivent être publiées pour être récupérées à l'aide d'une requête HTTP/Get.

(Hérité de ServiceHealthBehaviorBase)
HttpGetUrl

Obtient ou définit un Uri qui spécifie l’adresse à laquelle les métadonnées sont publiées pour être récupérées à l’aide d’une requête HTTP/Get.

(Hérité de ServiceHealthBehaviorBase)
HttpsGetBinding

Obtient ou définit la liaison utilisée pour la récupération de l’intégrité par le biais d’une requête HTTPS/Get.

(Hérité de ServiceHealthBehaviorBase)
HttpsGetEnabled

Obtient ou définit une valeur qui indique si les métadonnées du service doivent être publiées pour être récupérées à l’aide d’une requête HTTPS/Get.

(Hérité de ServiceHealthBehaviorBase)
HttpsGetUrl

Obtient ou définit un Uri qui spécifie l’adresse à laquelle les métadonnées sont publiées pour être récupérées à l’aide d’une requête HTTPS/Get.

(Hérité de ServiceHealthBehaviorBase)
ServiceStartTime

Obtient la date et l’heure de démarrage du service de contrôle d’intégrité.

(Hérité de ServiceHealthBehaviorBase)

Méthodes

AddHttpProperty(Message, HttpStatusCode, Boolean)

Définit le type de contenu et le code d’état HTTP pour le message de réponse.

EnsureHttpStatusCode(Int32)

Vérifier que le code d’état HTTP est compris entre 200 et 599, inclusif.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetHttpResponseCode(ServiceHostBase, String[])

Analyse les champs de la chaîne de requête et retourne son code de réponse HTTP défini.

GetServiceHealthSections(ServiceHostBase)

Obtient une collection d’objets ServiceHealthSection définis dans le ServiceHealthBehavior.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
GetXmlDocument(ServiceHostBase)

Sérialise l’objet ServiceHealthModel associé avec le serviceHost spécifié et le retourne au format XML.

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

Retourne le message de réponse à une requête spécifiée.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TryParseBooleanQueryParameter(String, String, Boolean, Boolean)

Tente d’analyser un paramètre de chaîne de requête booléen et retourne une valeur qui indique si l’opération d’analyse a réussi.

TryParseHttpStatusCodeQueryParameter(String, String, HttpStatusCode, HttpStatusCode)

Tente d’analyser le code d’état HTTP d’une variable de chaîne de requête et retourne une valeur qui indique si l’opération d’analyse a réussi.

Implémentations d’interfaces explicites

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

Passe des données personnalisées à des éléments de liaison pour prendre en charge l’implémentation de contrat.

(Hérité de ServiceHealthBehaviorBase)
IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Modifie des valeurs de propriété d’exécution ou insère des objets d’extensions personnalisées tels que des gestionnaires d’erreurs, des intercepteurs de messages ou de paramètres, des extensions de sécurité et autres objets d’extensions personnalisées.

(Hérité de ServiceHealthBehaviorBase)
IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Inspecte l'hôte et la description du service pour confirmer que le service peut s'exécuter correctement.

(Hérité de ServiceHealthBehaviorBase)

S’applique à