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

Erg*_*wun 25 iis asp.net-mvc

在 IIS 管理器中,应用程序池在基本设置对话框中具有“立即启动应用程序池”复选框,以及称为“启动模式”的高级设置,可以将其设置为“按需”或“始终运行”。

这些设置有什么区别?

小智 12

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


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

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


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

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


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

  • AlwaysRunning
    如果应用程序池正在运行,则立即启动 w3wp.exe 进程。
  • OnDemand
    如果应用程序池正在运行,则在有入站应用程序请求时启动 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 进程何时启动。
    启动/停止应用程序池的菜单操作


mhe*_*384 7

看起来像“立即启动应用程序池”控制启动万维网发布服务时应用程序池是否“启动”。但是“启动”的应用程序池不一定在运行(意味着可能没有 w3wp 进程)。

如果应用程序池未“启动”,那么当您访问使用该应用程序池的站点时,您将收到 503。

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


jfo*_*mmy 5

回复有点晚,但我会在我环顾四周寻找同一问题的答案时添加我的发现。

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

  • 这如何回答问题? (2认同)