Tuesday, June 12, 2007

IIS 6.0 Process Model

The IIS 6 process model is the default model on machines running Windows 2003 Server operating system. It introduces several changes and improvements over the IIS 5 process model. One of the biggest changes is the concept of application pools. On IIS 5.X all web applications, that is, all AppDomains, were hosted by the ASP.NET worker process. To achieve a finer granularity over security boundaries and personalization, the IIS 6 process model allows applications to run inside different copies of a new worker process, w3wp.exe. Each application pool can contain multiple AppDomains and is hosted in a single copy of the worker process. In other words, the shift is from a single process hosting all applications to multiple processes hosting each an application pool. This model is also called the worker process isolation mode.
Another change is that in IIS 6 request is received at lower kernal level and routed by http.sys to the application pools unlike in IIS 5.X where request is received by a user process called inetinfo.exe.
Each application pool has its own w3wp.exe worker process. The w3wp.exe worker process, differently from the aspnet_wp.exe process used in IIS 5 model, isn’t ASP.NET specific, and is used to handle any kind of requests. The specific worker process then decides which ISAPI modules to load according to the type of resources it needs to serve.

Reference: http://dotnetslackers.com/articles/iis/ASPNETInternalsIISAndTheProcessModel.aspx

No comments: