如何禁用IIS应用程序池自动启动,使其保持停止状态?
解决IIS应用程序池手动停止后自动启动的问题
遇到这种情况确实挺闹心的,我之前处理过好几次类似的问题,整理了几个靠谱的解决方向,你可以挨个排查试试:
1. 修改应用池的启动模式
这是最常见的诱因——如果你的应用池设置了AlwaysRunning模式,IIS会主动维持它的运行状态,哪怕你手动停止,过段时间也会自动重启。
操作步骤:
- 打开IIS管理器,找到目标应用程序池
- 右键点击 → 选择「高级设置」
- 在「常规」分类下找到「启动模式」,把它改成 OnDemand
- 确认保存后,再手动停止一次应用池测试效果
2. 检查关联网站的预加载和启动设置
应用池是和网站绑定的,如果对应网站开启了预加载或者设置了自动启动,也会触发应用池重启:
- 找到应用池绑定的目标网站,右键 → 「高级设置」
- 把「预加载已启用」改成 False
- 同时手动停止该网站(网站的运行状态会直接关联应用池的启动)
3. 排查外部监控工具或脚本
很多服务器会部署运维监控软件、定时脚本,这些工具可能会定期检查应用池状态,发现停止就自动启动。
你可以:
- 打开服务器的「任务计划程序」,看看有没有定时执行的启动应用池脚本
- 检查运维监控平台的规则,是否有针对这个应用池的自动恢复配置
- 查看服务器上的第三方管理工具,确认没有自动重启应用池的设置
4. 直接修改applicationHost.config配置文件(进阶操作)
如果GUI设置没生效,可以直接修改IIS的核心配置文件:
- 找到路径
C:\Windows\System32\inetsrv\config\applicationHost.config(需要管理员权限打开) - 搜索你的应用池名称,找到对应的
<add>节点 - 确保配置里包含
startMode="OnDemand",如果想彻底禁止IIS重启时自动启动该池,可以把autoStart设为false - 保存文件后,IIS会自动加载新配置
5. 禁用Application Initialization模块(按需操作)
如果你的服务器安装了Application Initialization模块,它会自动启动应用池来预加载站点内容。如果不需要这个功能:
- 打开「服务器管理器」→ 「添加角色和功能」
- 找到Web服务器下的「Application Initialization」,取消勾选并卸载该模块(注意:如果其他站点依赖这个功能,谨慎操作)
另外还有个小细节:检查所有站点的应用池分配,确保没有其他站点意外绑定到这个应用池,避免被其他站点的请求触发启动。
内容的提问来源于stack exchange,提问作者Turpan




