I have an ASP.NET (v4.0) web app that is installed in a virtual directory (as an application) and is hosted in it's own app pool. This is repeated for each instance of the app (i.e. per customer).
The app pools are integrated (not classic) mode and LoadUserProfile is set to true. Otherwise, default settings.
Each instance currently has it's own copy of the code/config, and it's own data folder (basic file read/writes).
1 instance of this app runs well (operation used for comparison takes ~4 seconds). Every other instance runs slowly (from 10-25 seconds for the same operation).
If I move the slower instance to the "fastest" app pool that instance springs to life. If I move the faster instance into the slower app pool that instance slows to a crawl.
The app pools were created in the same way initially - manually. I later used the powershell copy routine to ensure an exact copy of the faster app pool and still the same behaviour. Comparing the apppool.config files shows they are identical barring the virtual directory assignments.
There are no shared resources that are being blocked, so far as I can tell, and I tested that by shutting down the performant app pool and restarting... slow is still slow, and then when I restart that app pool (so it's loaded last) it's still faster...
This has been driving me crazy for nearly a week now, so if anyone has any ideas I'd be very, very grateful! I'm hoping there is some nugget of wisdom to do with configuration that I'm unaware of but my usual search techniques have left me wanting!