ServiceHealthBehavior 类

定义

提供可提供运行状况终结点的 Windows Communication Foundation (WCF) 服务行为。

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
继承
ServiceHealthBehavior

注解

运行状况终结点用于执行运行状况检查,以评估组件的运行状况。 运行状况终结点可用于:

  • 通知业务流程工具终止未通过关键运行状况检查的进程。

  • 通过跟踪和提供有关服务可用性和性能的警报,充当监视工具的早期问题指示器。

ServiceHealthBehavior 是扩展 IServiceBehavior 并派生自 的 WCF 服务行为 ServiceHealthBehaviorBase 。 将 ServiceHealthBehavior 实例添加到 ServiceDescription.Behaviors 集合可实现以下操作:

  • 发布服务运行状况: 可以使用 HTTP/GET 请求和查询字符串显示特定于服务的详细信息,例如服务状态、限制计数 ?health 和容量。 在排查 WCF 服务行为不当问题时,了解和轻松访问显示的信息至关重要。

  • 返回 HTTP 响应代码: 可以在查询字符串中指定 HTTP/GET 运行状况探测请求的 HTTP 状态代码。

运行状况终结点仅在它监视其运行状况的组件的上下文中有意义。 它没有任何其他含义或用途。 因此,其运行状况是组件运行状况的一个管道。 客户端 假定运行状况终结点返回的 HTTP 响应代码适用于整个组件。 这符合使用运行状况检查(如负载均衡器、服务发现等)的当前基础结构工具的预期行为。

启用运行状况终结点

有两种方法可以指定如何公开运行状况终结点和发布 WCF 服务运行状况信息:

  • 通过使用配置文件。 例如:

    <behaviors>
       <serviceBehaviors>
         <behavior name="DefaultBehavior">
           <serviceHealth httpGetEnabled="true"/>
         </behavior>
       </serviceBehaviors>
    </behaviors>
    
  • 编程。 以下代码片段使用 C# 公开运行状况终结点:

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

构造函数

ServiceHealthBehavior()

初始化 ServiceHealthBehavior 类的新实例。

属性

HasXmlSupport

获取指示是否支持 XML 响应消息的值。

HealthDetailsEnabled

获取或设置一个值,该值指定运行状况终结点是否应返回服务详细信息,或者响应是否不应包含任何内容。

(继承自 ServiceHealthBehaviorBase)
HttpGetBinding

获取或设置用于通过 HTTP/Get 请求进行运行状况检索的绑定。

(继承自 ServiceHealthBehaviorBase)
HttpGetEnabled

获取或设置一个值,该值指示是否发布服务元数据以便使用 HTTP/GET 请求进行检索。

(继承自 ServiceHealthBehaviorBase)
HttpGetUrl

获取或设置一个 URI,它指定发布元数据的地址,以便使用 HTTP/Get 请求进行检索。

(继承自 ServiceHealthBehaviorBase)
HttpsGetBinding

获取或设置用于通过 HTTPS/Get 请求进行运行状况检索的绑定。

(继承自 ServiceHealthBehaviorBase)
HttpsGetEnabled

获取或设置一个值,该值指示是否发布服务元数据以便使用 HTTPS/Get 请求进行检索。

(继承自 ServiceHealthBehaviorBase)
HttpsGetUrl

获取或设置一个 URI,它指定发布元数据的地址,以便使用 HTTPS/Get 请求进行检索。

(继承自 ServiceHealthBehaviorBase)
ServiceStartTime

获取运行状况检查服务开始的日期和时间。

(继承自 ServiceHealthBehaviorBase)

方法

AddHttpProperty(Message, HttpStatusCode, Boolean)

设置响应消息的内容类型和 HTTP 状态代码。

EnsureHttpStatusCode(Int32)

确保 HTTP 状态代码在 200 至 599(包括 200 和 599)的范围内。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetHttpResponseCode(ServiceHostBase, String[])

分析查询字符串字段并返回其定义的 HTTP 响应代码。

GetServiceHealthSections(ServiceHostBase)

获取 ServiceHealthSection 中定义的 ServiceHealthBehavior 对象的集合。

GetType()

获取当前实例的 Type

(继承自 Object)
GetXmlDocument(ServiceHostBase)

串行化与指定的 serviceHost 关联的 ServiceHealthModel 对象,并将其以 XML 格式返回。

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

返回指定请求的响应消息。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)
TryParseBooleanQueryParameter(String, String, Boolean, Boolean)

尝试分析布尔查询字符串参数,并返回一个值,该值指示分析操作是否成功。

TryParseHttpStatusCodeQueryParameter(String, String, HttpStatusCode, HttpStatusCode)

尝试分析查询字符串变量的 HTTP 状态代码,并返回一个值,该值指示分析操作是否成功。

显式接口实现

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

将自定义数据传递给绑定元素以支持联系人实现。

(继承自 ServiceHealthBehaviorBase)
IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

更改运行时属性值或插入自定义扩展对象,例如错误处理程序、消息或参数拦截器、安全扩展以及其他自定义扩展对象。

(继承自 ServiceHealthBehaviorBase)
IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

检查服务主机和服务说明,从而确定服务是否可成功运行。

(继承自 ServiceHealthBehaviorBase)

适用于