An application pool is a group of physical processes under a single user account. Each application pool contains its own set of configuration settings, memory space, and security tokens. Dedicated Application pools allow you to have different configurations for each website instead of the same. You can create several application pools to manage the load and ensure your server stays responsive to requests.
Each application pool is an instance of the W3WP.EXE worker process for a single website or multiple websites. A worker process runs a specific piece of code. When you request a page from a Web server, the server sends the request to the worker process associated with the requested page. A worker process is a separate instance of the.NET Framework that executes a certain portion of the code.
What is the difference between a shared Application Pool and a dedicated application pool?
An application pool is considered to be shared if multiple web applications run under the same application pool. If each website has its own application pool, it is said to be a Dedicated Application Pool.
Advantages of assigning a dedicated application pool:
Dedicated app pools typically do not affect app pools on other sites on the same machine when something bad happens.
If you share the same application pool across all sites, a problem in a particular site may cause all sites on the webserver to crash. The other sites will not be affected if their sites are isolated into their dedicated application pools.
Applications that require more resources should be isolated from the other applications running on a server so that they do not negatively impact the performance of the other applications.
Preventing an application from accessing the data from another application.
Using the Dedicated application pool, we can set different settings (e.g., different .NET versions) for other apps.