ServiceHealthBehavior Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
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
?healthcadeia 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 |
| 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) |