ServiceHealthBehavior Classe

Definição

Fornece um comportamento de serviço Windows Communication Foundation (WCF) que fornece um endpoint de saúde.

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
Herança
ServiceHealthBehavior

Observações

Os endpoints de saúde são usados para realizar verificações de saúde que avaliam a saúde de um componente. Os endpoints de saúde podem ser usados para:

  • Notificar ferramentas de orquestração para encerrar um processo que está a falhar numa verificação crítica de saúde.

  • Servir como um indicador precoce de problemas para ferramentas de monitorização, rastreando e fornecendo alertas sobre a disponibilidade e desempenho de um serviço.

ServiceHealthBehavior é um comportamento de serviço WCF que estende IServiceBehavior e deriva de ServiceHealthBehaviorBase. Adicionar uma ServiceHealthBehavior instância à ServiceDescription.Behaviors coleção permite o seguinte:

  • Publicação do Service Health: Detalhes específicos do serviço, como estado do serviço, contagem de aceleradores e capacidade, podem ser exibidos usando um pedido HTTP/GET com a ?health cadeia de consulta. Conhecer e ter acesso fácil à informação apresentada é de extrema importância ao resolver problemas de um serviço WCF com comportamento inadequado.

  • Devolução dos códigos de resposta HTTP: Pode-se especificar na cadeia de consulta o código de estado HTTP para um pedido de sonda de saúde HTTP/GET.

Um endpoint de saúde só tem significado no contexto do componente cuja saúde monitoriza. Não tem outro significado ou propósito. Assim, a sua saúde é um canal para a saúde do componente. Os clientes devem assumir que o código de resposta HTTP devolvido pelo endpoint de saúde é aplicável a todo o componente. Isto é compatível com o comportamento esperado pelas ferramentas infraestruturais atuais que utilizam verificações de saúde, como balanceadores de carga, descobertas de serviços e outras.

Ativar um endpoint de saúde

Existem duas formas de especificar como expor o endpoint de saúde e publicar a informação de saúde do serviço WCF:

  • Usando um arquivo de configuração. Por exemplo:

    <behaviors>
       <serviceBehaviors>
         <behavior name="DefaultBehavior">
           <serviceHealth httpGetEnabled="true"/>
         </behavior>
       </serviceBehaviors>
    </behaviors>
    
  • Programáticamente. O seguinte fragmento de código usa C# para expor o endpoint de saúde:

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

Construtores

Name Description
ServiceHealthBehavior()

Inicializa uma nova instância da ServiceHealthBehavior classe.

Propriedades

Name Description
HasXmlSupport

Recebe um valor que indica se as mensagens de resposta XML são suportadas.

HealthDetailsEnabled

Recebe ou define um valor que especifica se o endpoint de saúde deve devolver os detalhes do serviço ou se a resposta não deve conter conteúdo.

(Herdado de ServiceHealthBehaviorBase)
HttpGetBinding

Obtém ou define a ligação que é usada para recuperação de saúde através de um pedido HTTP/Get.

(Herdado de ServiceHealthBehaviorBase)
HttpGetEnabled

Recebe ou define um valor que especifica se deve publicar metadados do serviço para recuperação usando um pedido HTTP/Get.

(Herdado de ServiceHealthBehaviorBase)
HttpGetUrl

Obtém ou define um Uri que especifica o endereço para o qual os metadados são publicados para recuperação usando um pedido HTTP/Get.

(Herdado de ServiceHealthBehaviorBase)
HttpsGetBinding

Recebe ou define a ligação que é usada para recuperação de saúde através de um pedido HTTPS/Get.

(Herdado de ServiceHealthBehaviorBase)
HttpsGetEnabled

Recebe ou define um valor que especifica se deve publicar metadados do serviço para recuperação usando um pedido HTTPS/Get.

(Herdado de ServiceHealthBehaviorBase)
HttpsGetUrl

Obtém ou define um Uri que especifica o endereço para o qual os metadados são publicados para recuperação usando um pedido HTTPS/Get.

(Herdado de ServiceHealthBehaviorBase)
ServiceStartTime

Obtém a data e hora em que o serviço de exames de saúde começou.

(Herdado de ServiceHealthBehaviorBase)

Métodos

Name Description
AddHttpProperty(Message, HttpStatusCode, Boolean)

Define o tipo de conteúdo e o código de estado HTTP para a mensagem de resposta.

EnsureHttpStatusCode(Int32)

Certifique-se de que o código de estado HTTP está dentro do intervalo 200 e 599, inclusive.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

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

Analisa os campos da cadeia de consulta e devolve o seu código de resposta HTTP definido.

GetServiceHealthSections(ServiceHostBase)

Obtém uma coleção dos ServiceHealthSection objetos definidos no ServiceHealthBehavior.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetXmlDocument(ServiceHostBase)

Serializa o ServiceHealthModel objeto associado ao especificado serviceHost e devolve-o em formato XML.

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

Devolve a mensagem de resposta a um pedido especificado.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

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

Tenta analisar um parâmetro de cadeia de consulta booleano e retorna um valor que indica se a operação de análise foi bem-sucedida.

TryParseHttpStatusCodeQueryParameter(String, String, HttpStatusCode, HttpStatusCode)

Tenta analisar o código de estado HTTP de uma variável de string de consulta e devolve um valor que indica se a operação de análise foi bem-sucedida.

Implementações de Interface Explícita

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

Passa dados personalizados para elementos de ligação para suportar a implementação do contacto.

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

Altera valores de propriedades em tempo de execução ou insere objetos de extensão personalizados, como manipuladores de erros, interceptores de mensagens ou parâmetros, extensões de segurança e outros objetos de extensão personalizados.

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

Inspeciona o host do serviço e a descrição do serviço para confirmar que o serviço pode correr com sucesso.

(Herdado de ServiceHealthBehaviorBase)

Aplica-se a