如何在 IIS 7.5 中配置应用程序池在停止时自动重新启动?

Posted

技术标签:

【中文标题】如何在 IIS 7.5 中配置应用程序池在停止时自动重新启动?【英文标题】:How to config application pool in IIS 7.5 automatically re-start when it was stopped? 【发布时间】:2012-03-06 01:22:06 【问题描述】:

我的网站每天停机几次,当我检查应用程序池 (IIS 7.5) 时,我看到它已停止,我必须手动重新启动它。如何设置应用程序池以使其在出错后自动重新启动?

【问题讨论】:

更大的问题是为什么您的应用程序池停止了。检查您的事件日志并尝试找出导致它们停止的原因。 【参考方案1】:

您需要将运行网站的应用程序池的 startMode 从 onDemand 更改为 AlwaysRunning。默认情况下,IIS 将所有应用程序池设置为 onDemand。

    在 IIS 管理器中,单击“连接”窗格中的计算机名称。 如果视图未激活,则切换到功能视图。 双击功能视图管理部分的配置编辑器。 单击“部分”字段的向下箭头,展开 system.applicationhost,然后单击应用程序池。 单击 (收集),然后单击显示计数的字段旁边的省略号 (...)。 在集合编辑器中,选择要为其配置 startMode 属性的应用程序池。 在底部的“属性”窗口中,将 startMode 属性的值设置为 AlwaysRunning。

来源:http://msdn.microsoft.com/en-us/library/ee677285%28v=azure.10%29.aspx

在 IIS 8 及更高版本中,启动模式设置现在可直接从应用程序池的高级设置中获得。

【讨论】:

我不敢相信我从来不知道这一点,我很惊讶这不是默认设置。我想不出你不想设置它的原因,尤其是对于任何面向公众的网络应用程序。 IIS 中的默认设置都针对 .NET 和开发站点进行了优化。例如,当您运行 php 时,您必须更改很多设置,尤其是在回收方面。 在 IIS 8 及更高版本中,启动模式设置现在可直接从应用程序池的高级设置中获得。 您是否需要重新启动应用程序池才能使其生效,还是在应用设置后立即生效? Chaoix,您应该发布您的建议作为答案,因为这是正确的做法。【参考方案2】:

在 IIS 8 及更高版本中,现在可以从应用程序池的高级设置中直接使用 startMode 设置。

将 startMode 更改为 AlwaysRunning 会在失败时自动重启应用程序池。

https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/applicationpools/add/#new-in-iis-75-and-later

【讨论】:

【参考方案3】:

“默认情况下 IIS 将所有应用程序池设置为按需”的问题是您必须更新位。然后站点将重新启动并锁定部署。最好在应用程序池下的高级设置下设置快速故障保护。将Failure interval (min) 设置为1,Max fail 设置为5。

【讨论】:

“更新位”? @Vincent 这可能意味着“部署新内容和二进制文件”

以上是关于如何在 IIS 7.5 中配置应用程序池在停止时自动重新启动?的主要内容,如果未能解决你的问题,请参考以下文章

IIS:应用程序池在网站访问时停止

应用程序池在 IIS 7 中自动停止

IIS 7.5 - 403 禁止

停止从 IIS 7.5 中的父 ASP.NET 应用程序继承 web.config

IIS 之 在IIS7IIS7.5中应用程序池最优配置方案

IIS 之 在IIS7IIS7.5中应用程序池最优配置方案