需要回收 IIS 应用程序池

Microsoft.SystemCenter.Apm.Infrastructure.Monitoring.ApmAgent.IISRecycle.Monitor (UnitMonitor)

此监视器跟踪回收 IIS 应用程序池的需求,原因是与 Web 服务器上运行的应用程序有关的监视设置发生了变化。

Knowledge Base article:

摘要

此监视器跟踪回收 IIS 应用程序池的需求,原因是与 Web 服务器上运行的应用程序有关的监视设置发生了变化。 在需要回收 IIS 应用程序池时,此监视器将变为不正常状态。

原因

在使用 .NET 应用程序性能监视模板修改应用程序监视设置时,可能需要回收 IIS 应用程序池,以便让新的设置生效。 需要回收 IIS 应用程序池的示例方案之一就是启用客户端监视。

解决方法

Element properties:

TargetMicrosoft.SystemCenter.Apm.ApmAgent
Parent MonitorSystem.Health.ConfigurationState
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.Apm.Infrastructure.Monitoring.IISRecycle.MonitorType
RemotableFalse
AccessibilityPublic
Alert Message
需要回收 IIS 应用程序池
服务器 {0} 上的应用程序监视设置已被修改。 为使新的设置得以应用,需要回收该服务器上的 IIS 应用程序池。 在回收 IIS 应用程序池之前,将不会应用新的监视设置。 但是,受监视的应用程序将继续正常工作。 如果为同一台服务器显示“需要 IIS 重新启动”警报,则可以忽略此警报,并直接按照“需要 IIS 重新启动”警报中的信息执行操作。 在重新启动 IIS 后,将会自动解除“需要回收 IIS 应用程序池”警报。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Apm.Infrastructure.Monitoring.ApmAgent.IISRecycle.Monitor" Accessibility="Public" Enabled="true" Target="AI!Microsoft.SystemCenter.Apm.ApmAgent" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="false" Priority="Normal" TypeID="Microsoft.SystemCenter.Apm.Infrastructure.Monitoring.IISRecycle.MonitorType" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.Apm.Infrastructure.Monitoring.ApmAgent.IISRecycle.Monitor.AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="ApplicationStateOK" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="ApplicationStateWarning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
</Configuration>
</UnitMonitor>