IIS 7.0 应用程序池管理全面解析
1. 虚拟目录与应用程序边界
在某些情况下,一个站点中可能只有一个应用程序,但存在两个虚拟目录。例如,站点根目录和 /Section2 之间没有明确的应用程序边界。像 /Section2/default.aspx 这样的页面,会使用站点根目录下的应用程序文件夹,而忽略 /Section2 文件夹中的应用程序文件夹。
在 DefaultAppPool 中通常只有一个应用程序。从相关界面图标可以看出,Section2 文件夹的图标与其他不同,它代表虚拟目录,指向单独的物理路径,并且继承其父级的应用程序设置。由于这两个虚拟目录属于同一应用程序,它们甚至会共享 InProc 会话状态和缓存。
2. w3wp.exe 进程理解
每个应用程序池在操作系统中都运行在自己的工作进程里,这样能确保应用程序池之间完全隔离。出于安全考虑,还可以为每个工作进程分配特定的用户身份。
w3wp.exe 工作进程以用户模式运行,负责处理每个应用程序池的请求,包括静态或动态内容。
在单个服务器上运行的应用程序池数量没有严格限制。IIS 能够处理数百个甚至数千个应用程序池,但前提是并非所有应用程序池同时运行。每个应用程序池都会占用一定的内存和 CPU 资源,过多的应用程序池最终会给服务器带来较大负担。例如,运行静态网页的应用程序池大约有 3MB 的内存开销,而运行简单 ASP.NET 页面的应用程序池基础内存开销约为 10MB(上下浮动几兆字节)。我们可以根据这些大致数值,来判断将站点分离到不同应用程序池所产生的额外开销。由于内存成本较低,不确定时建议将站点分离。
超级会员免费看
订阅专栏 解锁全文
78

被折叠的 条评论
为什么被折叠?



