Understanding the IIS Process in Windows 7: Inetinfo.exe vs. Modern Architecture


2 views

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:

  1. Verify IIS is installed (Turn Windows Features on/off)
  2. Check if World Wide Web Publishing Service is running
  3. 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:

  1. Ensure IIS is properly installed (Turn Windows Features On/Off)
  2. 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