Step 1: The user sends a request to IIS. IIS first checks which ISAPI extension can serve this request. Depending on file extension the request is processed. For instance, if the page is an ‘.ASPX page’, then it will be passed to ‘aspnet_isapi.dll’ for processing.
Step 2: If this is the first request to the website, then a class called as ‘
ApplicationManager’ creates an application domain where the website can run. As we all know, the application domain creates isolation between two web applications hosted on the same IIS. So in case there is an issue in one app domain, it does not affect the other app domain.
Step 3: The newly created application domain creates hosting environment, i.e. the ‘
HttpRuntime’ object. Once the hosting environment is created, the necessary core ASP.NET objects like ‘
HttpContext’ , ‘
HttpRequest’ and ‘
HttpResponse’ objects are created.
Step 4: Once all the core ASP.NET objects are created, ‘
HttpApplication’ object is created to serve the request. In case you have a ‘global.asax’ file in your system, then the object of the ‘global.asax’ file will be created. Please note global.asax file inherits from ‘
Note: The first time an ASP.NET page is attached to an application, a new instance of ‘
HttpApplication’ is created. Said and done to maximize performance,
HttpApplicationinstances might be reused for multiple requests.
Step 5: The
HttpApplicationobject is then assigned to the core ASP.NET objects to process the page.
HttpApplicationthen starts processing the request by HTTP module events, handlers and page events. It fires the MHPM event for request processing.