ServiceHealthBehavior Klasse

Definition

Stellt ein WCF-Dienstverhalten (Windows Communication Foundation) bereit, das einen Integritätsendpunkt bereitstellt.

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
Vererbung
ServiceHealthBehavior

Hinweise

Integritätsendpunkte werden verwendet, um Integritätsprüfungen durchzuführen, die die Integrität einer Komponente bewerten. Integritätsendpunkte können für:

  • Benachrichtigen von Orchestrierungstools, um einen Prozess zu killen, bei dem eine kritische Integritätsprüfung fehlschlägt.

  • Dienen als früher Problemindikator für Überwachungstools, indem Sie Warnungen zur Verfügbarkeit und Leistung eines Diensts nachverfolgen und bereitstellen.

ServiceHealthBehavior ist ein WCF-Dienstverhalten, das IServiceBehavior erweitert und von abgeleitet ServiceHealthBehaviorBase wird. Das Hinzufügen ServiceHealthBehavior einer -Instanz ServiceDescription.Behaviors zur Auflistung ermöglicht Folgendes:

  • Veröffentlichung Service Health: Dienstspezifische Details wie Dienststatus, Drosselungsanzahl und Kapazität können mithilfe einer HTTP/GET-Anforderung mit der ?health Abfragezeichenfolge angezeigt werden. Es ist von größter Bedeutung, wenn Sie einen WCF-Dienst behandeln, der ein falsches Verhalten auft, wenn Sie wissen, welche Informationen angezeigt werden, und auf einfache Weise darauf zugreifen zu können.

  • Rückgabe von HTTP-Antwortcodes: Sie können in der Abfragezeichenfolge den HTTP-Statuscode für eine HTTP/GET-Integritätsabfrage angeben.

Ein Integritätsendpunkt ist nur im Kontext der Komponente sinnvoll, deren Integrität überwacht wird. Sie hat keine andere Bedeutung oder keinen anderen Zweck. Daher ist seine Integrität ein Conduit für die Integrität der Komponente. Clients sollten davon ausgehen, dass der vom Integritätsendpunkt zurückgegebene HTTP-Antwortcode für die gesamte Komponente gilt. Dies ist kompatibel mit dem Verhalten, das von aktuellen Infrastrukturtools erwartet wird, die Integritätsprüfungen wie Lastenausgleichstools, Dienstermittelungen und andere nutzen.

Aktivieren eines Integritätsendpunkts

Es gibt zwei Möglichkeiten, anzugeben, wie sie den Integritätsendpunkt verfügbar machen und WCF-Dienst-Integritätsinformationen veröffentlichen:

  • Mithilfe einer Konfigurationsdatei. Zum Beispiel:

    <behaviors>
       <serviceBehaviors>
         <behavior name="DefaultBehavior">
           <serviceHealth httpGetEnabled="true"/>
         </behavior>
       </serviceBehaviors>
    </behaviors>
    
  • Programmgesteuert. Im folgenden Codefragment wird C# verwendet, um den Integritätsendpunkt verfügbar zu machen:

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

Konstruktoren

ServiceHealthBehavior()

Initialisiert eine neue Instanz der ServiceHealthBehavior-Klasse.

Eigenschaften

HasXmlSupport

Ruft einen Wert ab, der angibt, ob XML-Antwortnachrichten unterstützt werden.

HealthDetailsEnabled

Ruft einen Wert ab, der angibt, ob der Integritätsendpunkt die Dienstdetails zurückgeben soll oder ob die Antwort keinen Inhalt enthalten soll, oder legt den Wert fest.

(Geerbt von ServiceHealthBehaviorBase)
HttpGetBinding

Ruft die Bindung ab, die zum Abrufen der Integrität über eine HTTP/Get-Anforderung verwendet wird, oder legt die Bindung fest.

(Geerbt von ServiceHealthBehaviorBase)
HttpGetEnabled

Ruft einen booleschen Wert ab, der angibt, ob Dienstmetadaten für den Abruf mit einer HTTP/Get-Anforderung veröffentlicht werden sollen.

(Geerbt von ServiceHealthBehaviorBase)
HttpGetUrl

Ruft einen URI ab, der die Adresse angibt, an der die Metadaten für den Abruf mit einer HTTP/Get-Anforderung veröffentlicht werden, oder legt diesen fest.

(Geerbt von ServiceHealthBehaviorBase)
HttpsGetBinding

Ruft die Bindung ab, die zum Abrufen der Integrität über eine HTTPS/Get-Anforderung verwendet wird, oder legt die Bindung fest.

(Geerbt von ServiceHealthBehaviorBase)
HttpsGetEnabled

Ruft einen booleschen Wert ab, der angibt, ob Dienstmetadaten für den Abruf mit einer HTTPS/Get-Anforderung veröffentlicht werden sollen.

(Geerbt von ServiceHealthBehaviorBase)
HttpsGetUrl

Ruft einen URI ab, der die Adresse angibt, an der die Metadaten für den Abruf mit einer HTTPS/Get-Anforderung veröffentlicht werden, oder legt diesen fest.

(Geerbt von ServiceHealthBehaviorBase)
ServiceStartTime

Ruft das Datum und die Uhrzeit ab, zu der der Integritätsprüfungsdienst gestartet wurde.

(Geerbt von ServiceHealthBehaviorBase)

Methoden

AddHttpProperty(Message, HttpStatusCode, Boolean)

Legt den Inhaltstyp und den HTTP-Statuscode der Antwortnachricht fest.

EnsureHttpStatusCode(Int32)

Stellen Sie sicher, dass der HTTP-Statuscode im Bereich zwischen 200 und 599 einschließlich liegt.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetHttpResponseCode(ServiceHostBase, String[])

Analysiert die Abfragezeichenfolgen-Felder und gibt den definierten HTTP-Antwortcode zurück.

GetServiceHealthSections(ServiceHostBase)

Ruft eine Collection der ServiceHealthSection-Objekte ab, die in ServiceHealthBehavior enthalten sind.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetXmlDocument(ServiceHostBase)

Serialisiert das ServiceHealthModel-Objekt, das mit dem angegebenen serviceHost verknüpft ist, und gibt es im XML-Format zurück.

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

Gibt die Antwortnachricht an eine angegebene Anforderung zurück.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
TryParseBooleanQueryParameter(String, String, Boolean, Boolean)

Versucht, einen booleschen Abfragezeichenfolgenparameter zu analysieren, und gibt einen Wert zurück, der angibt, ob der Analysevorgang erfolgreich war.

TryParseHttpStatusCodeQueryParameter(String, String, HttpStatusCode, HttpStatusCode)

Versucht, den HTTP-Statuscode einer Abfragezeichenfolgenvariablen zu analysieren, und gibt einen Wert zurück, der angibt, ob der Analysevorgang erfolgreich war.

Explizite Schnittstellenimplementierungen

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

Übergibt benutzerdefinierte Daten an Bindungselemente, um die Kontaktimplementierung zu unterstützen.

(Geerbt von ServiceHealthBehaviorBase)
IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Ändert Eigenschaftenwerten zur Laufzeit oder fügt benutzerdefinierte Erweiterungsobjekte, wie Fehlerhandler, Nachrichten- oder Parameterinterceptoren, Sicherheitserweiterungen und andere benutzerdefinierte Erweiterungsobjekte ein.

(Geerbt von ServiceHealthBehaviorBase)
IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Prüft den Diensthost und die Dienstbeschreibung, um sicherzustellen, dass der Dienst erfolgreich ausgeführt wird.

(Geerbt von ServiceHealthBehaviorBase)

Gilt für