我在 Windows Server 2008 R2 上运行 IIS 7.0,并为每个站点创建了 1 个应用程序池,但有 1 个站点导致应用程序池停止。事件查看器中出现以下错误:
这多次显示:
为应用程序池“Pilot.Mobile.SyncV2”提供服务的进程意外终止。进程 ID 为“3620”。进程退出代码为“0x80131506”。
然后我得到这个:
由于服务于该应用程序池的进程出现一系列故障,应用程序池“Pilot.Mobile.SyncV2”被自动禁用。
两件事-我怎样才能找出崩溃的原因,例如工具或脚本,还有没有人得到我可以在计划任务上运行的任何脚本,该脚本将检查应用程序池,如果 1 关闭,它将重新启动它并发送电子邮件给我。
答案1
您只能通过调试应用程序来找到它崩溃的原因;我会从进程退出代码开始,查找它的含义,然后启用向客户端发送 ASP.NET 错误,以便能够在崩溃发生时在 IE 中看到一些内容。
其他可能的策略:运行带有附加调试器的应用程序池以查看实际发生的情况,和/或修改代码以生成更详细的日志,包括异常处理程序等。
如果您不是网站开发人员之一,请联系他们;这肯定是应用程序问题,而不是网络服务器问题。
要从命令行管理应用程序池,可以使用以下命令:
appcmd start apppool /apppool.name: PoolName
appcmd stop apppool /apppool.name: PoolName
appcmd recycle apppool /apppool.name: PoolName
(“回收”的意思是“停止并重新启动”)。
答案2
我推荐以下命令:appcmd recycle apppool DefaultAppPool