回顾为每个网站/应用程序创建单独的IIS应用程序池

时间:2010-01-05 20:14:25

标签: asp.net iis application-pool

目前,在我们的生产IIS Web场中,我们在一个应用程序池(默认应用程序池)中托管了大约15个应用程序。有两个网站和大约13个虚拟目录。

一位同事建议我们更改IIS配置,以便每个应用程序都是一个单独的应用程序池(具有相同的设置)。

这样做有任何缺点或潜在问题吗? ASP.NET应用程序是否可以构建为满足它们都在同一个应用程序池中的要求?

2 个答案:

答案 0 :(得分:7)

我怀疑他们是否考虑到了这个要求,除非他们出于某种原因依赖共享内存。否则,对于描述的场景......

优点(单独的应用程序池):

  • 进程隔离(一次崩溃不会导致其他崩溃)
  • 资源争用较少
  • 可用于进程内会话的更多内存,缓存

<强>缺点:

  • 更多进程,内存和上下文切换
  • 共享缓存方案不再可用*

*我不确定.NET如何隔离与 HttpRuntime 缓存相关的同一应用程序池中的网站;对于会话,“应用程序唯一性”(1)由以下内容确定:

  • 所有服务器上的物理路径(区分大小写)
  • 机器密钥
  • 实例ID
  • the approot

这就是阻止您在同一个应用程序池中跨不同网站共享会话的原因;但是,共享缓存数据可能更容易。总的来说,讨论与为特定应用程序部署 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/

答案 1 :(得分:2)

除了配置时间和(可能)更多内存要求之外,使用多个应用程序池没有任何不利因素。

(只是要清楚......所需的内存会因许多因素而异 - 但有一种方法是,一个池中的15个应用程序使用的内存比15个池中的15个应用程序多。如果每个应用程序不需要太多内存和应用程序在不同的时间使用,并且不经常使用。)

相关问题