目前,在我们生产的IIS Web场中,我们在单个App Pool(默认应用程序池)中托管约15个应用程序.有两个网站和大约13个虚拟目录.
同事建议我们更改IIS配置,因此每个应用程序都是单独的App Pool(具有相同的设置).
这样做有什么缺点或潜在的问题吗?
ASP.NET应用程序是否可能已经建立在同一个应用程序池中的要求?
解决方法
我怀疑他们是按照这个要求建立的,除非他们因为某些原因而依赖于共享的记忆.否则,对于描述的场景…
优点(单独应用程序池):
过程隔离(一次崩溃并不会降低其他)
>资源争夺较少
>更多内存可用于进程内会话,缓存
缺点:
>更多的进程,内存和上下文切换
>共享缓存方案不再可用*
*我不知道.NET如何隔离与HttpRuntime高速缓存相同的应用程序池中的网站;对于会话,“应用程序唯一性”(1)由以下因素决定:
>所有服务器上的物理路径(区分大小写)
>机器钥匙
>实例id
>审批
这就是阻止你在同一个应用程序池中的不同网站上共享会话;但尽管共享缓存数据可能会更容易.总而言之,讨论与针对特定应用部署Web Garden的优缺点(2)重叠.
1)
http://support.microsoft.com/?id=325056
http://rodiniz.spaces.live.com/blog/cns!F2A56AAF89A7E43A!658.entry
2)
http://nicholas.piasecki.name/blog/2009/02/on-web-gardens-aspnet-and-iis-60/