Quick Reference : IIS Application Pool

What is IIS Application Pool?

IIS runs any website you configure in a process named w3wp.exe. IIS Application pool is feature in IIS which allows each website or a part of it to run under a corresponding w3wp.exe process. So you can run 100 websites all in a single w3wp.exe or 100 different w3wp.exe. E.g. run 3 websites in same application pool(same w3wp.exe) to save memory usage. ,run 2 different websites in two different application pools so that each can run under separate user account(called application pool identity). run a website in one application pool and a subsite 'website/app' under a different application pool.

IIS Application Pools

Some Important Settings you should know

  • Status - When you start or stop an application pool, basically you start/stop the website or application.In the background you are starting or stoping the w3wp.exe process which is running your website.
  • .NET CLR Version - Which version of .NET runtime should be loaded.So if you are deploying asp.net website which should run under .net framework 4.0 or above,you can control that here.# settings
    • .NET v2.0
    • .NET v4.5
    • No managed Code - if your application does not have any .net code(asp.net bits) and purely a static website or is a php or nodejs website,you can choose this
  • Managed pipeline - This is a setting which controls What  request pipeline is used.The request pipeline changed from IIS7+. You have 2 settings
    • Integrated - request pipeline introduced from IIS7+ onwards.More details here
    • Classic -  IIS6 request pipeline mode.
  • Identity -This is the application pool identity or simply put this is the user account in which the w3wp.exe will run under.More details here
  • Applications - This tells how many websites or applications are running under this Application Pool.

What are the uses of Application Pool ?

Every website or a part of the website,you can run under an application pool.You can control some basic settings of the website using an application pool.

  1. You would like the website to run under a different w3wp.exe process.Then create a new application pool and assign that to the website.
  2. You would like to run the website and all it's code under a different user account(e.g under Admin privileges),you can run do that by changing Application Pool Identity.
  3. You would like to run a particular application under .net framework 4.0 or 2.0.
  4. You would like to make sure the website in 32 bit mode or have a scheduled recycle of the w3wp.exe process etc.All such things are controlled from iis application pool.