In Windows XP, Internet Information Services (IIS) ran as a single process called inetinfo.exe
. This monolithic architecture handled all IIS components including the WWW service, FTP service, and SMTP service within one executable.
With Windows 7 and later versions, Microsoft completely redesigned IIS architecture for better stability and security. The key changes include:
- Process isolation through application pools
- Modular components instead of a single executable
- Improved resource management
In Windows 7, you won't find inetinfo.exe
running. Instead, IIS uses these primary processes:
w3wp.exe - Worker process for application pools
svchost.exe - Hosts various IIS services
inetmgr.exe - IIS Manager interface
To verify IIS processes in Windows 7, you can use PowerShell:
Get-Process | Where-Object {$_.ProcessName -match "w3wp|inetmgr"}
Or from command prompt:
tasklist /svc | findstr /i "iis"
Each application pool runs under its own w3wp.exe
instance. You can check active pools with:
%windir%\system32\inetsrv\appcmd list wp
Here's a C# snippet to monitor IIS worker processes:
using System.Diagnostics;
public class IISMonitor {
public static void Main() {
Process[] iisProcesses = Process.GetProcessesByName("w3wp");
foreach (Process p in iisProcesses) {
Console.WriteLine($"PID: {p.Id} | Memory: {p.WorkingSet64/1024}KB");
}
}
}
The shift from inetinfo.exe
to the current model provides:
- Better isolation between websites
- Improved stability (one site crashing won't affect others)
- More granular security controls
- Easier scalability
If you don't see any IIS processes:
- Verify IIS is installed (Turn Windows Features on/off)
- Check if World Wide Web Publishing Service is running
- Ensure at least one application pool is started
To start IIS from command line:
net start w3svc
In Windows XP and earlier versions, IIS (Internet Information Services) ran as a monolithic process called inetinfo.exe
. This single process handled all aspects of web serving, FTP, and other services. With Windows Vista and Windows 7, Microsoft fundamentally redesigned IIS architecture:
- inetinfo.exe - Deprecated in IIS 7+ (exists only for backward compatibility)
- w3wp.exe - Worker process that handles HTTP requests
- svchost.exe - Hosts the Windows Process Activation Service (WAS)
To check active IIS processes in Windows 7 Task Manager:
tasklist /svc | findstr /i "w3svc"
Sample output showing worker processes:
w3wp.exe 1234 N/A w3wp.exe 5678 N/A
Modern IIS uses application pools for isolation. Each pool spawns separate w3wp.exe
instances:
// PowerShell to list application pools
Import-Module WebAdministration
Get-ChildItem IIS:\AppPools | Select-Object Name, State
If you don't see w3wp.exe
processes:
- Ensure IIS is properly installed (Turn Windows Features On/Off)
- Check if World Wide Web Publishing Service is running:
sc query w3svc
net start w3svc
For advanced monitoring of worker processes:
// Create a performance counter in C#
PerformanceCounter pc = new PerformanceCounter(
"Process",
"% Processor Time",
"w3wp",
true);
Remember that multiple w3wp.exe
instances may run simultaneously for different application pools. Use appcmd
to map processes to sites:
%windir%\system32\inetsrv\appcmd list wp