我一直使用OnDemand启动模式来运行我的应用程序池,但最近听说了AlwaysRunning模式。它使得在ASP.NET应用程序部署到IIS之后立即可用。启用此功能似乎会导致IIS在部署应用程序时立即启动应用程序,从而消除了“冷启动”网站所需的预热时间。详见这篇优秀文章。
以下是我有些疑问,希望能够理解:
使用AlwaysRunning功能时,当应用程序池被回收时会发生什么?内存使用是否被移除和释放?工作进程是否终止并重新启动,还是它们继续保留在内存中而其内存使用未被移除和释放?
OnDemand和AlwaysRunning有哪些优缺点?哪个对于单个工作进程更好,哪个对于Web Garden(多个工作进程)更好?
此外,有人能解释一下在使用AlwaysRunning的情况下,如何与进程空闲超时、空闲超时操作和回收一起使用?以及使用OnDemand时会出现相同的情况。我希望在这些情况下了解所有这些部分是如何相互干扰的(AlwaysRunning和OnDemand)。