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 并从中派生的 ServiceHealthBehaviorBaseWCF 服务行为。 将 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(含)范围内。

Equals(Object)

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

(继承自 Object)
GetHashCode()

用作默认哈希函数。

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

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

GetServiceHealthSections(ServiceHostBase)

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

GetType()

获取当前实例的 Type

(继承自 Object)
GetXmlDocument(ServiceHostBase)

序列化 ServiceHealthModel 与指定 serviceHost 关联的对象,并采用 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)

适用于