I was looking for a Keep-Alive functionality for my Portals, and stumbled upon this thread. I might be wrong, but in my knowing, all people are assuming here that separate Portals running on the same physical DNN installation should require Keep-Alive functionality for only one of the Portals, if the Portals are running under the same App Pool.
Now, App-Pool is an IIS concept. But what you people need to recognize is that there is another master entity involved in addition to IIS, that is ASP.NET & the .NET Framework. It is true that only a single instance of .NET Framework libraries is loaded up in memory for all Applications running inside the same App Pool. But from there on, the story iis different.
ASP.NET isolates each Application into its own App Domain even if they are using the same Code & libraries. Thus, each application has its own App Domain inside the same App Pool (if they are sharing the App Pool). And all resources required by an application except the Framework libraries are loaded per App Domain. Thus separate loading of same assemblies would be required for 2 different App Domains.
Coming to the DNN perspective, you create a web-application for each Portal separately. Thus, each Portal gets its own App Domain. Now, even if they share the App Pool, the DNN libraries (that you consider are being shared by the Portals) are NOT really shared in-memory. They are isolated into their own App Domains, and hence each Portal would reuiqre loading them separately.
Thus each Portal would have its own start-up time, which implies you need a keep-alive solution for each Portal separately, even if they run off the same physical DNN installation. You can also check out the following for more information:
blogs.msdn.com/david.wang/archive/2005/09/01/HOWTO-Provision-ASP-dotNet-AppDomains-and-IIS6-Application-Pools.aspx
www.odetocode.com/articles/305.aspx
Sebastian Leupold wrote
Generally the best solution is to configure IIS App pool recycle according to DNN needs (not to recycle after 20 mins of inactivity)
Now, coming to the above quote, Sebastian most DNN Portals are third party hosted. And the Hosting provider would be (and should be) running multiple client applications under the same App Pool. So, how could they allow you to set the App Pool recycle time according to a single client's needs???