为何dir iis:\应用池名\workerprocesses命令返回错误的工作进程结果?
解决WebAdministration模块显示已终止工作进程的问题
问题现象
在Windows Server 2019虚拟机中,通过以下命令查看应用池工作进程时,输出显示已终止的进程4728仍处于Running状态:
C:\users\rpresser> ipmo webadministration c:\users\rpresser> dir iis:\myappPoolName\workerprocesses Process State Handles Start Time Id -------- ----- ------- ---------- 4728 Running
执行restart-webapppool或iisreset命令后,应用池已启动新进程,但上述命令输出未更新。
解决步骤
1. 刷新WebAdministration模块缓存
WebAdministration模块可能存在状态缓存,重新加载模块可刷新数据:
Remove-Module WebAdministration Import-Module WebAdministration
重新执行dir iis:\myappPoolName\workerprocesses,检查进程列表是否更新。
2. 使用原生进程查询命令验证实际运行状态
直接查询系统中实际运行的w3wp进程(IIS工作进程),避免模块缓存影响:
# 推荐使用Get-CimInstance(替代过时的Get-WmiObject) Get-CimInstance Win32_Process -Filter "Name='w3wp.exe'" | Select-Object ProcessId, CommandLine
输出的CommandLine字段会包含对应应用池名称,可确认当前实际运行的进程ID。
3. 重启IIS管理服务清除深层缓存
若上述方法无效,重启IIS管理服务可彻底清除缓存(注意:此操作会重启所有IIS站点):
Restart-Service IISADMIN -Force
重启后再次检查应用池工作进程状态即可。
内容的提问来源于stack exchange,提问作者Ross Presser
相关产品推荐
相关产品推荐

