我们有一个不完全防弹的 Web 应用程序,有时应用程序池会在没有用户输入的情况下关闭并且不会重新启动。一旦重新启动,它将运行几天甚至几个月。有没有办法让它自己重新启动?IIS 似乎很快就会杀死它认为行为不端的应用程序池。理想情况下,网络应用程序会得到改进,但在这种情况下,这不取决于我。
我们有一个不完全防弹的 Web 应用程序,有时应用程序池会在没有用户输入的情况下关闭并且不会重新启动。一旦重新启动,它将运行几天甚至几个月。有没有办法让它自己重新启动?IIS 似乎很快就会杀死它认为行为不端的应用程序池。理想情况下,网络应用程序会得到改进,但在这种情况下,这不取决于我。
您知道开箱即用的 IIS (6.0) 每 29 小时重新启动一次所有应用程序池吗?因此,除非您更改了设置,否则它几乎每天都会重新启动。当它死掉时,如果它每隔几周/几个月就会这样做一次,这并不是因为它自上次重启以来已经运行了太长时间。
在什么条件下触发应用程序池重启?你只知道用户什么时候开始打电话吗?是否有任何可以触发的事件查看器条目?您还可以告诉 IIS 在消耗一定数量的内存或完成一定数量的请求后重新启动给定的应用程序池 - 也许您可以连接一些监控并找出意味着您需要执行此操作的阈值,然后通过IIS,或者如果条件更复杂,则使用自动调用方式
iisapp.vbs /a NamedAppPool /r
/Edit - 重新阅读 OP,你是说应用程序池实际上会自行停止,并且如果没有用户手动回收它就不会重新启动?肯定应该有一个应用程序或系统事件查看器条目 - 您可能必须打开 IIS 应用程序池警报才能看到它,或者它可能已经存在。
Rapid-Fail Protection 是否会停止应用程序池?如果是这样,请禁用它。
假设您有某种监控,如果您的监控软件没有运行,您可以让您的监控软件(重新)启动应用程序池吗?
或者,您可以编写一个快速程序/脚本来检查检查/根据需要重新启动池并将其作为计划任务运行。