为什么要在 IIS 中添加额外的应用程序池?

Jon*_*ney 14 windows iis application-pools

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

Por*_*man 24

是的,很多:

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


spl*_*tne 7

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

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