11

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

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

这样做有什么缺点或潜在的问题吗?是否有可能构建 ASP.NET 应用程序时要求它们都在同一个应用程序池中?

4

2 回答 2

7

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

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

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

缺点:

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

*我不确定 .NET 如何在与HttpRuntime缓存相关的同一应用程序池中隔离网站;对于Sessions,“应用程序唯一性”(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/

于 2010-01-05T21:01:03.593 回答
2

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

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

于 2010-01-05T20:19:55.393 回答