将Web应用程序放置在一个默认应用程序池中和使用专用应用程序池的优缺点是什么?
将Web应用程序放置在一个默认应用程序池中和使用专用应用程序池的优缺点是什么?
优点:
缺点:
将网站组合在应用程序池中的主要原因是为了节省内存。运行多个w3wp.exe进程会占用大量内存。如果您没有特定的拆分理由,最好将它们放在一起。
专用应用程序池通常可以保持一个站点发生的问题不会影响其他站点。如果您在多个站点之间共享应用程序池,则可能会在仅特定站点(或应用程序池)存在错误条件时使盒子上的所有站点崩溃。
此外,如果在同一Web服务器上混合使用ASP.Net版本,则至少需要每个ASP.Net版本一个不同的应用程序池,或者按网站执行此操作。
我想不到不分离应用程序池的好理由,这样做非常容易。
我同意Jason的观点。
此外,您可以为不同的应用程序池指定不同的用户(例如Windows帐户)。这使得可以在数据库中设置这些用户的不同权限。这有助于增强安全性,并使跟踪哪个网站/用户正在访问数据库成为可能,这在跟踪数据库性能问题时非常有用。
如果您有单独的应用程序池,那么在第一个访问您的站点并在其回收后重新启动应用程序池时,您将支付初始加载时间的惩罚。
例如,假设一夜之间没有人访问您的服务器,IIS 将会关闭(默认为 20 分钟)。第一个访问服务器的人将遭受延迟,直到您的应用程序被重新加载到内存中。
根据您如何部署您的站点(例如发布模式等),这可能不是问题,也可能很烦人。
这就是为什么我们正在考虑转移到单个应用程序池/服务器而不是每个站点都有一个应用程序池的原因。