So we've learned that any incoming requests for ASP.NET resources are handed over to the worker process for the actual processing within the context of the CLR. In IIS 6.0, the worker process is a distinct process from IIS, so if one ASP.NET application crashes, it doesn't bring down the whole server.
ASP.NET manages a pool of HttpApplication objects for each running application and picks up one of the pooled instances to serve a particular request. These objects are based on the class defined in your global.asax file, or on the base HttpApplication class if global.asax is missing. The ultimate goal of the HttpApplication object in charge of the request is getting an HTTP handler.
On the way to the final HTTP handler, the