IIS Application Pools for ASP.NET Apps

This will popup the Add Application Pool dialog as shown below.

IIS Application Pools

Add Application Pool

Enter a name for the new pool and select the version of the .NET Framework that execute the code in the applications assigned it, and select either Integrated or Classic pipeline mode (Classic mode is normally used for legacy apps, select Integrated otherwise).

Click OK, to create the new application pool and you will see it added to the application pool listing.  To see a full listing of all the application pool settings, highlight the app pool and then click Advanced Settings…  as shown below:

IIS Application Pools

Application Pool Advanced Settings

Assigning an Application to an Application Pool

To assign an application to an application pool, select the application in the IIS Management Console click  Basic Settings  on the right-hand panel which  opens  Edit Application dialog.   the Select…  and then select an application pool from listing.

IIS Application Pools
Select Application Pool dialog

Click OK and then application is added to the applications running under that pool (you can check this by navigating back the the Application Pools listing in the IIS Management Console and selecting the application pool and clicking View Applications… on the right panel.

Starting and Stopping an Application Pool

To Start or Stop an application pool, highlight the application pool and then select the action from the right-hand panel of the IIS Management Console. (needless to say, applications which are running on a pool which has been stopped will not function).

The Recycle action perform a stop and subsequent start of the pool which is useful if you are encountering issues with your applications such as memory leaks (which will be released upon a Recycle). Note that a recycling the application pool is not the same as restarting IIS (Sessions will not be impacted by an application pool recycle).

Using Side-by-Side Execution

Application pools enable you to run apps which use different versions of ASP.NET on the same server. Thus legacy applications, running on old versions of ASP.NET can be migrated to the same server as apps running on the latest version.

A common question is whether to run each site/app on a separate application pool. There are no hard and fast rules for this, but in general it is best practice to have resource intensive applications running on separate application pools since these can then be separate managed , stopped or recycled as required. More importantly resource intensive apps can have their CPU utilization throttled to prevent hogging or server IIS Application Pools resources.