Jan 25, 2007 - 03:46 AM
Your assumptions are pretty much spot on.
When the worker process in .NET recycles - either explicitly or in response to an encountered error - it unloads all applications (sites) running under that worker process. When it restarts, it will take a bit of time to reload all the assemblies used in that process, any application-level tasks for each application, and the application assemblies when they are first called.
Effectively the two scenarios - shutting down the Worker Process during idle, and recycling the app pools - do the same thing: release memory resources being used back to the system.
The perception to that first user starting up an application (site) for the first time should be minimal, if at all, unless you've got a monster of an assembly to compile on first use.
Basically, it's "garbage collection" for the memory used by the worker process and the app pools.
I hope this helps,
Jan 25, 2007 - 05:55 AM
But in principle if the application is running alone on a dedicated server, there should be no reason to recycle, unless it's because of an error detected by IIS where the application doesn't respond, right?
Jan 25, 2007 - 08:57 AM
Jan 25, 2007 - 09:01 AM