应用程序池管理

IIS · 第 4 篇 · 适用于 Windows Server 2019 / 2022 / 2025

📑 目录

  1. 理解应用程序池
  2. 创建应用程序池
  3. 高级配置
  4. 常见问题

1. 理解应用程序池

应用程序池(Application Pool)是 IIS 中用于隔离 Web 应用程序的工作进程容器。每个应用程序池可以包含一个或多个工作进程(w3wp.exe),为应用程序提供独立的运行环境。

应用程序池的作用

💡 工作进程与请求处理

当客户端请求到达 IIS 时,请求被路由到对应的应用程序池,由池中的工作进程 w3wp.exe 处理。可以在任务管理器中看到工作进程,每个进程对应一个应用程序池。

2. 创建应用程序池

1

打开IIS 管理器 → 展开服务器节点 → 点击"应用程序池"

2

右侧面板 → 点击"添加应用程序池"

3

填写配置:

  • 名称:MyWebAppPool
  • .NET CLR 版本:.NET CLR 版本 v4.0 或"无托管代码"(适合静态内容)
  • 托管管道模式:集成(推荐)或经典
4

点击"确定"完成创建

5

将网站分配到应用程序池:选择网站 → 右侧"基本设置" → 应用程序池 → 选择 MyWebAppPool

PowerShell - 应用程序池管理
# 创建应用程序池
New-WebAppPool -Name "MyWebAppPool"

# 设置 .NET 版本
Set-ItemProperty -Path "IIS:\AppPools\MyWebAppPool" `
    -Name "managedRuntimeVersion" -Value "v4.0"

# 设置托管管道模式(集成/经典)
Set-ItemProperty -Path "IIS:\AppPools\MyWebAppPool" `
    -Name "managedPipelineMode" -Value "Integrated"

# 将网站分配到应用程序池
Set-ItemProperty -Path "IIS:\Sites\MyWebSite" `
    -Name "applicationPool" -Value "MyWebAppPool"

# 启动应用程序池
Start-WebAppPool -Name "MyWebAppPool"

3. 高级配置

1

选择应用程序池 → 右侧"高级设置"

2

常规配置:

  • .NET CLR 版本:v4.0 / v2.0 / 无托管代码
  • 托管管道模式:集成(推荐) / 经典
  • 启动模式:AlwaysRunning(常驻运行)/ OnDemand(按需)
3

进程模型配置:

  • 空闲超时:20分钟(超时后自动关闭工作进程)
  • 最大工作进程数:1(Web Garden 模式可设多个)
4

回收配置:

  • 固定时间间隔:1740分钟(29小时,默认值)
  • 虚拟内存限制:0(禁用)
  • 专用内存限制:0(禁用)
PowerShell - 高级配置
# 设置进程模型 - 空闲超时
Set-ItemProperty -Path "IIS:\AppPools\MyWebAppPool" `
    -Name "processModel.idleTimeout" -Value "00:20:00"

# 设置回收 - 定时回收(每29小时)
Set-ItemProperty -Path "IIS:\AppPools\MyWebAppPool" `
    -Name "recycling.periodicRestart.time" -Value "1.05:00:00"

# 设置内存限制(专用内存 500MB)
Set-ItemProperty -Path "IIS:\AppPools\MyWebAppPool" `
    -Name "recycling.periodicRestart.privateMemory" -Value 524288

# 设置 CPU 限制(最大 50%,限流动作)
Set-ItemProperty -Path "IIS:\AppPools\MyWebAppPool" `
    -Name "cpu.limit" -Value 50000
Set-ItemProperty -Path "IIS:\AppPools\MyWebAppPool" `
    -Name "cpu.action" -Value "Throttle"

# 手动回收应用程序池
Restart-WebAppPool -Name "MyWebAppPool"

4. 常见问题

Q1:应用程序池自动停止,如何排查

检查事件查看器 → Windows 日志 → 应用程序,筛选来源为"WAS"。常见原因:应用程序启动异常、权限不足、内存超限等。

Q2:集成模式和经典模式有什么区别

集成模式使用 IIS 7+ 的统一管道,性能更好,是默认推荐模式。经典模式兼容旧版 IIS 6 应用程序,使用 ISAPI 筛选器处理请求。

Q3:Web Garden 模式(多工作进程)适用场景

适用于无状态应用程序,可提高并发处理能力。注意:Session 状态必须存储在外部(如 SQL Server、Redis),否则会话数据丢失。