asp.net深入学习之--IIS6.0进程模型
来源:互联网 发布:单片机lcd1602时钟程序 编辑:程序博客网 时间:2024/06/06 07:28
如果Web服务器操作系统是Windows server 2003,则IIS 6.0进程模型是asp.net的默认选择。其名称明确之处,该模型需要IIS 6.0、然后,在windows 2003 的服务器上,仍然可以让asp.net遵守IIS 5.0进程模型的规则。可以通过修改machine.config文件中的<processModel>节,显示的启用该模型。
<processModel enable="true">
当然,我并不建议且滑倒IIS 5.0进程模型,虽然这样做是合法的。主要原因在于:IIS 6.0利用不同的内部模块的管道来处理一个入站请求,并且只有在仿真模式下运行时才能模仿IIS 5.0的行为。IIS 6.0管道以一个名为 完wp.exe的工作进程为中心。所有被分配给同一个应用程序池的Web应用程序共享该可执行进程的一个副本。用IIS 6.0的行话来说,一个应用程序池是一组共享相同的工作进程的副本的Web用用程序。IIS 6.0使我们能够指定应用程序池,以实现Web服务器上托管的各应用程序所需的隔离程度。
w3wp.exe worker进程加载aspn_isapi.dll;该ISAPI扩展又加载通用语言运行库(CLR),并启动ASP.NET运行库管道来处理该请求。当IIS 6.0进程模型正在使用时,内置的ASP.NET工作进程会被禁用。
注意:只有asp.net1.1完全利用IIS 6.0进程模型。如果把asp.net1.0安装到一台windows 2003 机器上,则默认的进程模型是IIS 5.0进程模型。之所以会这样,是因为asp.net1.1所带的aspnet_isapi.dll能够识别它的宿主,并根据需要加载CLR。asp.net1.0所带的aspnet_isapi.dll只能把请求转发给asp.net工作进程,绝对不会加载CLR。
下图为IIS 6.0进程模型
IIS 6.0作为内核级模块实现其HTTP监听程序。因此,所有的输入请求首先由http.sys驱动程序以内核模式进行管理。没有任何的第三方代码会与该监听程序交互,并且没有任何的用户模式冲突会影响IIS的稳定性。http.sys驱动程序监听请求,并把他们投递到合适的应用程序池的请求队列。一个称为饿哦Web管理服务的模块读取IIS 冤苦,并指示http.sys驱动程序创建与元库中所注册应用程序池一样多的请求队列。
总之,在IIS 6.0进程模型下,asp.net运行的更快,因为在inetinfo.exe可执行进程和工作进程之间,不需要任何进程间的通信。http请求直接在托管CLR的工作进程中被交付。此外,asp.net工作进程不是一个特俗进程,它只是IIS工作进程的一个副本。这一事实将进程回收、页面输入缓存和运行状况检查的负担(转交给IIS)
- asp.net深入学习之--IIS6.0进程模型
- ASP.NET深入学习笔记之IIS5.0的进程模型
- IIs5.0 与 IIS6.0 进程模型
- Asp.Net MVC4.0 学习之四--添加一个模型
- 深入ASP.NET 2.0的提供者模型
- 深入ASP.NET 2.0的提供者模型
- 深入ASP.NET 2.0的提供者模型
- ASP.Net应用程序的多进程模型
- ASP.Net应用程序的多进程模型
- IIS 6.0进程模型 --asp.net本质
- asp.net+IIS6+URLWriter配置
- Asp.Net MVC4.0学习之五--控制器访问模型数据
- Asp.Net MVC4.0 学习之八--为Movie模型和库表添加字段
- Asp.Net MVC4.0 学习之九--为模型添加验证
- [ASP.NET学习笔记之十六]深入解析ASP.NET架构
- 深入学习ASP.NET之分析asp.net数据库连接池优点与缺点
- [ASP.NET学习笔记之三十]ASP.NET 2.0的代码隐藏和编译模型
- 黑马程序员之ASP.NET 学习笔记:ASP.NET编程模型
- 我的大学生活
- 构建Ubuntu下的开发环境(java,c,c++)
- 计算机大小端
- OSPF与RIP 的比较
- 感言
- asp.net深入学习之--IIS6.0进程模型
- ospf中的三张表
- ospf网络层次化设计
- Android
- 李
- 如果乔布斯成为Google首任CEO
- 盛大战书已下,百度会否应战?
- 问题
- 来这真的没有错