“立即启动应用程序池”与启动模式AlwaysRunning的区别

“立即启动应用程序池”与启动模式AlwaysRunning的区别

在IIS管理器中,应用程序池在基本设置对话框中有“立即启动应用程序池”的复选框,还有一个名为“启动模式”的高级设置,可以设置为“OnDemand”或“AlwaysRunning”。

这些设置有什么区别?

答案1

与原始海报有相同的问题,但找不到简洁的答案,以下是我研究的分析。


应用程序池 != 工作进程 (w3wp.exe)

  • 通常我们看到每个应用程序池都有一个 w3wp.exe 实例在运行,但是技术上我们可以配置一个运行多个 w3wp.exe 实例的网络花园。
    网络花园……它们是好是坏?
  • 工作进程在单个应用程序池的上下文中执行。


立即启动应用程序池= 自动或手动启动
基本设置...

  • 已启用
    IIS 将自动启动应用程序池。
  • 已禁用
    有人需要手动启动应用程序池。


启动模式= 工作进程启动模式:立即或者按需
高级设置...

  • 永不停止
    如果应用程序池正在运行,则立即启动 w3wp.exe 进程。
  • 一经请求
    如果应用程序池正在运行,则在有入站应用程序请求时启动 w3wp.exe 进程。

补充笔记

  • IISRESET /stop
    停止 IIS、应用程序池和工作进程(w3wp.exe 实例)。
  • IISRESET /start
    启动 IIS,上述配置设置将决定应用程序池和工作进程(w3wp.exe)何时启动。

  • IIS 管理器停止 Web 服务器 GUI 操作
    停止 Web 服务器处理入站请求,但不会停止应用程序池或 w3wp.exe 进程。

  • IIS 管理器启动 Web 服务器 GUI 操作
    启动 Web 服务器以处理入站请求,但不会启动应用程序池或 w3wp.exe 进程。
    用于启动/停止 Web 服务器的菜单操作

  • IIS 管理器停止应用程序池 GUI 操作
    停止 w3wp.exe 进程。

  • IIS 管理器启动应用程序池 GUI 操作
    AlwaysRunning 与 OnDemand 将在 w3wp.exe 进程启动时确定。
    用于启动/停止应用程序池的菜单操作

答案2

看起来“立即启动应用程序池”控制在启动 World Wide Web Publishing 服务时应用程序池是否“已启动”。但“已启动”的应用程序池不一定正在运行(意味着可能没有 w3wp 进程)。

如果应用程序池未“启动”,则当您访问使用该应用程序池的站点时,将获得 503 错误。

如果应用程序池已“启动”,则 w3wp 进程将为您的请求提供服务。“始终运行”表示当应用程序池启动时,w3wp 进程将启动。按需意味着当您首次访问与应用程序关联的网站时,w3wp 进程将启动(w3wp 启动时会有延迟)。

答案3

回复有点晚了,但我会添加我的发现,因为我四处寻找同一问题的答案。

“OnDemand”:当收到第一个 Web 应用程序请求时,IIS 将启动工作进程。“AlwaysRunning”:当 IIS 启动或创建应用程序池时,IIS 将立即启动应用程序池的工作进程。

答案4

IIS 8 新增功能 – 应用程序池设置

启动模式

一些 Web 应用程序需要花费大量时间才能启动。默认情况下,IIS 仅在收到 Web 应用程序的第一个请求时启动工作进程。因此,对于需要较长时间初始化的 Web 应用程序,用户可能会看到响应缓慢。

对于此类应用程序,最好在 IIS 启动后立即启动工作进程。应用程序池有一个 startMode 设置,当设置为 AlwaysRunning 时,会在 IIS 启动后立即为应用程序池启动工作进程。

IIS 8 在应用程序池设置 UI 中为您提供了此设置。

相关内容