如何将 W3wp.exe 的运行实例关联到特定的 Web 应用程序?

问题描述 投票:0回答:3

SQL Server Profiler 向我显示特定数据库访问器的进程 ID。

Windows 任务管理器向我显示该进程 ID 属于 W3wp.exe。

我如何将其绑定回网络应用程序? (我有多个 Web 应用程序在此服务器上运行。)

iis web-applications windows-server-2012-r2 diagnostics
3个回答
4
投票

您可以使用 iis 管理器工作进程功能来检查哪个进程属于哪个应用程序。它会向您显示所有正在运行的工作进程和一些基本信息,包括 ProcessId。您可以将该 ProcessId 与任务管理器中的“进程”选项卡相匹配。

选项 A - GUI

  1. 打开iis管理器,选择服务器节点。

  2. 双击工作进程功能。

选项 B - CLI

  1. 您可以尝试的另一件事是在命令下运行。

    %windir%/system32/inetsrv/appcmd list wp
    
  2. 它将显示带有应用程序池名称的进程:


0
投票

旧帖子,但我还没有看到我通常使用的解决方案。

它将返回一个列表:

w3wp#(instance number) = ProcID, APPPool Name

请注意,我不是一名编码员,可能有更有效的方法。然而,这在 PowerShell 中对我来说很有效:

$count = (Get-Process | Where-Object {$_.Name -eq 'w3wp'}).count -1
$var = 1
$result=''

while ($var -le $count) {
$id = (Get-Counter "\Process(w3wp#$var)\ID Process").CounterSamples.CookedValue
$app = [regex]::match((Get-CimInstance Win32_Process -Filter "ProcessId = $id").CommandLine, '"([^"]+)"').Groups[1].Value
write-host "w3wp#$var = $id, $app"
$result += "w3wp#$var = $id, $app`n"

$var += 1
}


$result

0
投票

powershell解决方案

import-module webadministration
Get-ChildItem IIS:\AppPools\DefaultAppPool\WorkerProcesses

产生此输出:

进程状态处理开始时间 身份证


17480 运行 638 8/9/2023 11:29:17 AM

© www.soinside.com 2019 - 2024. All rights reserved.