如何确定应用程序池是已终止还是暂停?

时间:2016-01-07 22:10:44

标签: asp.net-mvc iis-8 quartz.net-2.0

我有一个ASP.NET MVC Web应用程序,它使用Quartz.net库按日计划执行任务。我很快发现IIS在一段时间不活动后终止/暂停应用程序池。我已更改该应用程序池的配置以避免此行为,如下所示:

  • 启动模式:始终运行
  • 空闲时间(分钟):0
  • 空闲超时行动:暂停
  • 生成回收日志条目:True [适用于所有子属性]
  • 常规时间间隔:0
  • 特定时间间隔:TimeSpan []数组[空]

我能看到的唯一可能仍然会杀死我的应用的属性是

  • 启用Ping:True

它会设置为杀死任何在90秒内没有响应的工作进程。

我对改变这个属性犹豫不决,因为我不想引入资源泄漏或类似的东西。

这些变化似乎在过去几天有效,但我的工作未能在今天早上再次执行。

所以我的问题是,我可以在事件查看器或其他地方寻找什么表明流程/应用程序被暂停或终止?

我不是要求如何改进我的实现 - 我知道具有持久存储的Windows服务或计划任务会更好。我想了解为什么会发生这种情况,以及在哪里查找应用程序池停止或启动的时间和原因。我似乎无法在事件查看器中找到任何内容,但也许我正在寻找错误的地方。

提前致谢。

1 个答案:

答案 0 :(得分:0)

是否有可能存在可能导致appPool崩溃的无法处理的异常。我认为可以从事件查看器中看到这些事情。