How application pool works under microsoft IIS?
As we all know, ASP application works on application pool structure, its all processes and connectivity with the database is controlled by this application pool concept. Here I have tried to explain how it work?
Prior to proceeding, let me put up the scenario of the Application Pool. On Web Server, there are dedicated/shared application pools assigned to particular website running on it. Each application pool is handled and processed by the worker process. Worker process plays vital role in ASP applications.
Whenever Client request for any ASP page, the request for concern page on the Web server is followed in the stepwise fashion. Kindly refer to the diagram, while going through the explaination.
Client request first gets forwarded on the Kernel, which is on the Http.sys/cache takes care of initial request status. Network stack and Http.sys/cache forwards corresponding ASP page request to concern worker process of that application pool.
Now this worker process communicates with User application through ASP.NET/CLR. Here for example, I have taken User application, which communicates with the MSSQL database. This application fetches requested data and displays it on the ASP page requested by the client.
As each worker process on IIS handles different Application pool, so even if one worker process fails resulting in application pool crash, other application continues its process without interruption. So that you can restart this crashed application pool.
Very shortly, I am going to post article on "Why application Pool crashes?" forthcoming attraction ;)