为什么在IIS中添加其他应用程序池?

我在Windows Server 2003上有多个IIS 6.0托pipe的网站。其中一些使用.Net 1.1框架,而其他使用.Net 2.0。 我目前已经为每个框架设置了应用程序池。 是否有任何其他原因添加额外的应用程序池?

    是的,很多:

    • AppPools可以作为不同的身份运行,所以你可以通过这种方式来限制权限。
    • 您可以为每个应用程序池分配不同的身份,以便在运行任务pipe理器时知道哪个w3wp.exe是哪个。
    • 您可以回收/重新启动一个应用程序池,而不会影响在不同应用程序池中运行的网站。
    • 如果您的网站存在内存泄漏或通常行为不当,则可以将其放置在应用程序池中,以免影响其他网站
    • 如果您的网站非常耗费CPU资源(例如调整照片大小),则可以将其放置在自己的应用程序池中,并节省其CPU利用率
    • 如果您有多个网站,每个网站都有自己的SQL数据库,则可以使用活动目录身份validation,而不是在web.config中存储用户名/密码。

    我在这些方面创build我的IIS应用程序池和单独的应用程序:

    • 关键任务应用程序获得自己的应用程序池:这样我就可以将它们从有问题的应用程序隔离开来。 它使得单个configuration成为可能,并且如果存在问题,我可以更容易地监视或排除故障。
    • 按types隔离应用程序 :按语言/技术或.NET框架版本进行池化。 您可以将ASP.NET与传统的ASP混合使用在同一个池中,但是如果ASP和ASP.NET都在同一个池中,并且您的ASP应用程序出现问题(需要您重新启动工作进程,则使用ASP)。 NET应用程序也将被回收。
    • 有问题的应用程序 (例如内存泄漏或CPU使用率过高的应用程序,数据库连接泄漏等)与正常应用程序分离。 新的应用程序进入“试用期”池,监视正常运行时间和性能。 如果应用程序certificate随着时间的推移是稳定的,它将移动到普通应用程序池; 否则,它仍然是孤立的。 这有助于将更多无问题的应用程序组合在一起。

    此外,除了Portmans的答案 – 出于安全原因。 限制资源访问池。 见http://blogs.iis.net/tomwoolums/archive/2008/12/17/iis-7-0-application-pools.aspx