I have created a new configuration in IIS 7.5 for an app using .NET 4.5. The new setup appears to enhance the management of web applications.
Orginal Configuration
WebRoot
--WebAppA1112
--WebAppA1213
--WebAppA1314
...
--WebAppB1112
--WebAppB1213
--WebAppB1314
New Configuration
WebRoot
--WebAppA
--1112
--1213
--1314
--WebAppB
--1112
--1213
--1314
In essence I am just reorganizing the "versions" of the application under a root application so I can handle common web configurations at a root level.
I have two questions:
- Is there any performance issues with the new setup?
- Is it safe to configure the root application with it's own app pool and have all sub applications use separate app pools also?
A performance is something subjective and that one you should measure yourself. By placing each application in a seperate pool, you ensure that potential problems with one application do not cause problems with other applications. On another hand, each application pool is an instance of w3wp.exe, therefore to serve more pools you need more RAM. So, it's a trade-off between security and hardware restrictions.
"Child" app pools are isolated from "root" pools and every application that has its own application pool, doesn't inherit any other application pool. If root and child applications have different configuration or root application is mission-critical and child applications might have problems (such as memory leaks) then it makes sence to use dedicated application pools, otherwise you could consider to use a shared pool for all.