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?
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).
You can also go into Task Manager and add the PID and Command Line columns to see the information you need.
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).
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)
Open Command Prompt with ‘Run as administrator‘.
Navigate to the path:
C:\Windows\System32\inetsrv\
For IIS 6
Run the command,
iisapp.vbs
For IIS 7
Run the command,
appcmd list wp