确定 Windows 7 / IIS7.5 中哪个 w3wp.exe 进程属于哪个应用程序池?

发布于 2024-08-12 11:35:40 字数 616 浏览 5 评论 0原文

我最近将我的开发计算机从 Windows XP 升级到 Windows 7。在运行 Windows 7 的桌面上,如何辨别哪个 w3wp.exe 进程属于哪个应用程序池?

但是我的桌面?

I've recently upgraded my development machine from Windows XP to Windows 7. How can I tell which w3wp.exe process belongs to which App Pool on a desktop running Windows 7?

But what about on my desktop?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

偷得浮生 2024-08-19 11:35:40

如果打开 IIS 管理器,请转至左侧树中代表您的计算机的根节点(应标记为您的计算机名称)。

在右侧的功能视图中,您将看到一个名为 IIS 的部分。在其下您将看到工作进程。选择它,它应该显示所有正在运行的工作进程和一些基本信息,包括 ProcessId。

您可以将该 ProcessId 与任务管理器的“进程”选项卡中的匹配进程相关联(显示所有用户的进程,并在结果中包含 ProcessId 列)。

If you open IIS Manager, go to the root node in the tree on the left that represents your computer (should be labeled as your computer name).

In the Features View to the right, you'll see a section called IIS. Under that you'll see Worker Processes. Select that and it should show you all running worker processes and some basic info, including ProcessId.

You can correlate that ProcessId to the matching process in the Processes tab in Task Manager (showing processes from all users, and including the ProcessId column in the results).

已下线请稍等 2024-08-19 11:35:40

您还可以进入任务管理器并添加PID命令行列来查看您需要的信息。

在此处输入图像描述

涂黑的内容包含各个进程的名称。

我发现这个工作流程比必须导航离开我在 IIS 中查看的内容只是为了查看此信息(然后必须导航回我所在的位置)稍微麻烦一些。

You can also go into Task Manager and add the PID and Command Line columns to see the information you need.

enter image description here

The blacked out content contains the names of the individual processes.

I find this workflow just slightly less cumbersome than having to navigate away from what I may be looking at in IIS just to see this information (to then have to navigate right back to where I was).

橘虞初梦 2024-08-19 11:35:40

我知道这是一篇旧文章,但这里有一种使用 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

如果您没有 LINQPad,请将转储替换为 Console.WriteLine(s )

I know this is an old post, but here is a way to enumerate the app pool and process IDs using C# code.

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();
    }
}

Make sure you reference Microsoft.Web.Administration.dll in %WINDIR%\System32\inetsrv.

If you don't have LINQPad, replace the dumps with Console.WriteLine(s)

新人笑 2024-08-19 11:35:40

有两种方式我更喜欢“任务管理器”版本。

选项 A - 使用任务管理器,

  1. 打开任务管理器

  2. 添加“命令行”列,如图所示。

    “在此处输入图像描述"
    输入图片此处描述

选项 B - 使用 PowerShell

  1. 运行以下命令

    cd C:\Windows\System32\inetsrv\
    .\appcmd 列表 wp
    

    “在此处输入图像描述"

There are two ways in which I prefer "task manager" version.

Option A - Using task manager,

  1. Open Task Manager

  2. Add "command line" column as shown in the images.

    enter image description here
    enter image description here

Option B - Using PowerShell

  1. Run the follow commands

    cd C:\Windows\System32\inetsrv\
    .\appcmd list wp
    

    enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文