【问题标题】:Understanding heartbeat in ASP.NET health monitoring了解 ASP.NET 健康监控中的心跳
【发布时间】:2011-10-11 06:30:22
【问题描述】:

谁触发了这个事件?在<healthMonitoring enabled="true" heartbeatInterval="30"> 中启用它有什么后果/好处,除了它每 30 秒出现在日志中?跟NLB心跳有关系吗?什么间隔更适合生产使用?

【问题讨论】:

    标签: asp.net diagnostics health-monitoring


    【解决方案1】:

    在 web.config 中以这种方式启用它会导致应用程序域定期(在您的情况下每 30 秒)引发WebHeartbeatEvent,主要是为了检查您的应用程序是否“仍然存在”(例如检查人类的心跳)。您可以像这样指定其他规则:

    <healthMonitoring enabled="true" heartbeatInterval="100">
      <rules>
        <add name="Heart Beat Events"
          eventName="Heartbeats"
          provider="EventLogProvider"
          profile="Default"
          minInterval="00:01:00" />
      </rules>
    </healthMonitoring>
    

    指定 'EventLogProvider' 将导致事件被记录到 EventLog 中,但您也可以编写自己的 Provider,see here.

    顺便说一下和NLB心跳无关,只用于负载均衡。

    【讨论】:

    • 如果recycle period大于heartbeatInterval,是否意味着我的应用池永远不会被回收?
    • @UserControl:是什么让你这么认为?
    • 我不明白“检查您的应用程序是否'仍然存在'”。那么是谁在发起这个事件呢? ASP.NET 工作进程?还是应用程序本身提出的?如果后者并且应用程序处于空闲状态,IIS 会回收它,不是吗?
    • @UserControl:事件由应用程序域引发。所以是的,我假设应用程序池将被 IIS 回收。 HeartbeatInterval 不是让您的应用保持活力的一种方式,它只是用来监控它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多