Home > Samples > Update > July 2002
          Back to associated article: Rewritten IIS Anchors Windows .NET Server
  IIS 6 Architecture and Request Processing (Illustration)    
   

0702riawns_illo1.gif (14615 bytes)

IIS 6.0 receives HTTP requests in kernel mode and delivers them to the application’s isolated worker process.

When an HTTP request arrives at the kernel-mode HTTP Listener (HTTP.sys, bottom), it checks the validity of the request. If the request is invalid, the appropriate HTTP error is immediately returned to the requester. If the request is valid, HTTP.sys checks to see if it can handle the request from its cache. If the response is in the cache, HTTP.sys sends the response immediately. Otherwise, HTTP.sys puts the request in a separate request queue for each worker process (application).

If the necessary worker process is not listening on the request queue, then HTTP.sys signals the Web Administration Service (WAS) to start and configure a worker process based on the configuration information stored in XML format in the metabase.

If a worker process or a group of worker processes (called a Web garden) is already started and connected to the request queue, the worker process pulls the request from the queue, processes it through any ISAPI filter or extension and Web application code, and returns the response to the HTTP.sys and the requester.

The WAS also monitors the health of a worker process and if, for example, the process does not respond or has exceeded a threshold (e.g., the number of hours running or number of requests handled), WAS coordinates with the HTTP Listener to hold requests in the queue while WAS stops the worker process and restarts it.