.net 确定哪个w3wp.exe进程属于Windows 7/IIS7.5中的哪个应用程序池?
我最近将我的开发机器从WindowsXP升级到Windows7。在运行Windows 7的桌面上,如何判断哪个w3wp.exe进程属于哪个应用程序池.net 确定哪个w3wp.exe进程属于Windows 7/IIS7.5中的哪个应用程序池?,.net,asp.net,iis-7,windows-7,.net-2.0,.net,Asp.net,Iis 7,Windows 7,.net 2.0,我最近将我的开发机器从WindowsXP升级到Windows7。在运行Windows 7的桌面上,如何判断哪个w3wp.exe进程属于哪个应用程序池 但是在我的桌面上呢?如果打开IIS管理器,请转到左侧树中的根节点,该节点表示您的计算机应标记为您的计算机名 在右边的Features视图中,您将看到一个名为IIS的部分。在下面,您将看到工作进程。选择该选项,它将显示所有正在运行的工作进程和一些基本信息,包括ProcessId 您可以在Task Manager的“进程”选项卡中将该ProcessId
但是在我的桌面上呢?如果打开IIS管理器,请转到左侧树中的根节点,该节点表示您的计算机应标记为您的计算机名 在右边的Features视图中,您将看到一个名为IIS的部分。在下面,您将看到工作进程。选择该选项,它将显示所有正在运行的工作进程和一些基本信息,包括ProcessId
您可以在Task Manager的“进程”选项卡中将该ProcessId与匹配的进程相关联,该选项卡显示来自所有用户的进程,并在结果中包括ProcessId列。您还可以进入Task Manager并添加PID和命令行列以查看所需的信息 涂黑内容包含各个进程的名称
我发现这个工作流程比我在IIS中看到的内容稍微简单一些,只是为了查看这些信息,然后必须导航回我所在的位置。我知道这是一篇老文章,但这里有一种方法可以使用C代码枚举应用程序池和处理ID
void Main()
{
using (var serverManager = new ServerManager())
{
foreach (var appPool in serverManager.ApplicationPools)
{
string.Format("App pool name = {0}", appPool.Name).Dump();
foreach (var workerProcess in appPool.WorkerProcesses)
{
string.Format("Process id = {0}", workerProcess.ProcessId).Dump();
}
}
"Done".Dump();
}
}
确保引用%WINDIR%\System32\inetsrv中的Microsoft.Web.Administration.dll
如果没有,请使用Console.WriteLines将转储替换为“以管理员身份运行” 导航到以下路径:
C:\Windows\System32\inetsrv\
适用于IIS 6
运行命令
iisapp.vbs
appcmd list wp
适用于IIS 7
运行命令
iisapp.vbs
appcmd list wp
太棒了,不需要轮盘赌调试。太棒了,太棒了,我就这样省了几个小时。使用键盘快捷键Ctrl-Shift-Escape和w3,这比启动IIS管理器并在此处和那里单击几下鼠标以使其提供信息要快得多。它会自动刷新。