ServiceHealthBehavior Clase

Definición

Proporciona un comportamiento del servicio Windows Communication Foundation (WCF) que facilita un punto de conexión de mantenimiento.

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

Comentarios

Los puntos de conexión de mantenimiento se usan para realizar comprobaciones de estado que evalúan el estado de un componente. Los puntos de conexión de mantenimiento se pueden usar para:

  • Notificar a las herramientas de orquestación que eliminen un proceso que produce un error en una comprobación de estado crítica.

  • Sirva como un indicador de problema temprano para las herramientas de supervisión mediante el seguimiento y la provisión de alertas sobre la disponibilidad y el rendimiento de un servicio.

ServiceHealthBehavior es un comportamiento del servicio WCF que extiende IServiceBehavior y deriva de ServiceHealthBehaviorBase. Agregar una ServiceHealthBehavior instancia a la ServiceDescription.Behaviors colección habilita lo siguiente:

  • Publicación de Service Health: Los detalles específicos del servicio, como el estado del servicio, los recuentos de limitaciones y la capacidad se pueden mostrar mediante una solicitud HTTP/GET con la cadena de ?health consulta. Conocer y tener fácilmente acceso a la información mostrada es de gran importancia al solucionar problemas de un servicio WCF de comportamiento erróneo.

  • Devolución de códigos de respuesta HTTP: Se puede especificar en la cadena de consulta el código de estado HTTP para una solicitud de sondeo de estado HTTP/GET.

Un punto de conexión de mantenimiento solo es significativo en el contexto del componente cuyo estado supervisa. No tiene ningún otro significado ni propósito. Por lo tanto, su estado es un conducto para el estado del componente. Los clientes deben suponer que el código de respuesta HTTP devuelto por el punto de conexión de mantenimiento es aplicable a todo el componente. Esto es compatible con el comportamiento esperado por las herramientas de infraestructura actuales que usan comprobaciones de estado, como equilibradores de carga, detecciones de servicio y otros.

Habilitación de un punto de conexión de mantenimiento

Hay dos maneras de especificar cómo exponer el punto de conexión de mantenimiento y publicar información de mantenimiento del servicio WCF:

  • Por medio de un archivo de configuración Por ejemplo:

    <behaviors>
       <serviceBehaviors>
         <behavior name="DefaultBehavior">
           <serviceHealth httpGetEnabled="true"/>
         </behavior>
       </serviceBehaviors>
    </behaviors>
    
  • Mediante programación. El fragmento de código siguiente usa C# para exponer el punto de conexión de mantenimiento:

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

Constructores

ServiceHealthBehavior()

Inicializa una nueva instancia de la clase ServiceHealthBehavior.

Propiedades

HasXmlSupport

Obtiene un valor que indica si se admiten mensajes de respuesta XML.

HealthDetailsEnabled

Obtiene o establece un valor que especifica si el punto de conexión de mantenimiento debe devolver los detalles de servicio o si la respuesta no debe incluir contenido.

(Heredado de ServiceHealthBehaviorBase)
HttpGetBinding

Obtiene o establece el enlace que se usa para la recuperación de mantenimiento a través de una solicitud HTTP/Get.

(Heredado de ServiceHealthBehaviorBase)
HttpGetEnabled

Obtiene o establece un valor que especifica si publicar los metadatos del servicio para la recuperación utilizando una solicitud HTTP/Get.

(Heredado de ServiceHealthBehaviorBase)
HttpGetUrl

Obtiene o establece un URI que especifica la dirección en la que los metadatos se publican para la recuperación mediante una solicitud HTTP/Get.

(Heredado de ServiceHealthBehaviorBase)
HttpsGetBinding

Obtiene o establece el enlace que se usa para la recuperación de mantenimiento a través de una solicitud HTTPS/Get.

(Heredado de ServiceHealthBehaviorBase)
HttpsGetEnabled

Obtiene o establece un valor que especifica si se publican los metadatos del servicio para la recuperación utilizando una solicitud HTTPS/Get.

(Heredado de ServiceHealthBehaviorBase)
HttpsGetUrl

Obtiene o establece un URI que especifica la dirección en la que los metadatos se publican para la recuperación mediante una solicitud HTTPS/Get.

(Heredado de ServiceHealthBehaviorBase)
ServiceStartTime

Obtiene la fecha y hora en la que se inició el servicio de comprobación de mantenimiento.

(Heredado de ServiceHealthBehaviorBase)

Métodos

AddHttpProperty(Message, HttpStatusCode, Boolean)

Establece el tipo de contenido y el código de estado HTTP del mensaje de respuesta.

EnsureHttpStatusCode(Int32)

Asegúrese de que el código de estado HTTP está dentro del intervalo de 200 y 599, ambos inclusive.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetHttpResponseCode(ServiceHostBase, String[])

Analiza los campos de cadena de consulta y devuelve su código de respuesta HTTP definido.

GetServiceHealthSections(ServiceHostBase)

Obtiene una colección de los objetos ServiceHealthSection definidos en ServiceHealthBehavior.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetXmlDocument(ServiceHostBase)

Serializa el objeto ServiceHealthModel asociado con los valores especificados serviceHost y lo devuelve en formato XML.

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

Devuelve el mensaje de respuesta a una solicitud especificada.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TryParseBooleanQueryParameter(String, String, Boolean, Boolean)

Intenta analizar un parámetro de cadena de consulta Boolean y devuelve un valor que indica si la operación de análisis se realizó correctamente.

TryParseHttpStatusCodeQueryParameter(String, String, HttpStatusCode, HttpStatusCode)

Intenta analizar el código de estado HTTP de una variable de cadena de consulta y devuelve un valor que indica si la operación de análisis se realizó correctamente.

Implementaciones de interfaz explícitas

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

Pasa los datos personalizados a los elementos de enlace para admitir la implementación del contacto.

(Heredado de ServiceHealthBehaviorBase)
IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Cambia los valores de propiedad en tiempo de ejecución o inserta objetos de extensión personalizados, como controladores de errores, interceptores de mensajes o parámetros, extensiones de seguridad y otros objetos de extensión personalizados.

(Heredado de ServiceHealthBehaviorBase)
IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Inspecciona el host y la descripción del servicio para confirmar que se puede ejecutar correctamente.

(Heredado de ServiceHealthBehaviorBase)

Se aplica a