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.
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.
Comments
- Anonymous
October 09, 2017
The statement "No managed Code - if your application does not have any .net code(asp.net bits)" is a bit misleading. An ASP.NET Core application that is run under IIS would need to choose the No Managed Code option in IIS for the app pool that application is being run under.- Anonymous
October 26, 2017
For asp.net core,your actual code is not run in IIS, but behind IIS where IIS proxies the request to dotnet.exe process using ASP.NET Core Module (ANCM).
- Anonymous