我有一个单独的ASP.NET MVC 4 web应用程序(扩展了System.Web.HttpApplication的MvcApplication),它托管在IIS 8上。我的应用程序在集成管道模式下的独立应用程序池上运行。这个应用程序池的最大工作进程数被设置为1.一个工作进程中有多少个Web应用程序实例正在运行?
我明白,应用程序实例可能会被合并,并且可能会有多个并行线程,这将为我的应用程序(AppDomain)的同一实例调用Begin_Request/End_Request。 。另外我明白,如果我将“最大工作进程数”设置为大于1,那么肯定会有多个应用程序实例(AppDomain)。
我不明白的是将发出多少次Application_Start调用,以及我的静态变量(存储在MvcApplication中,并且还有一些单例,如NHibernate会话工厂等)中将存在多少个实例时刻。
目前我有一些清理.NET MemoryCache的问题。我的网站的某些用户正在从缓存中接收旧值,因此导致我认为即使将“最大工作进程数”设置为1,我的全局MemoryCache可能也存在多个实例。
什么是我的应用程序静态变量和单例的最大数量,它们将在单个工作进程中并行运行?
是否有任何工具或脚本可以帮助我枚举IIS上的所有AppDomain?