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.
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.
- 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.
- 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.
- You would like to run a particular application under .net framework 4.0 or 2.0.
- 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.