IIS 6.0进程模型 --asp.net本质

如果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)

时间: 2025-01-20 11:37:38

IIS 6.0进程模型 --asp.net本质的相关文章

如何在IIS 7.0中配置ASP.NET应用程序

如果 ASP.NET Web 应用程序以 IIS 7.0 为宿主,则可以用多种方式为该应用程序进行配置设置.这包括: 使用 IIS 管理器. 直接编辑 Web.config 文件.可以在 Visual Studio 或 Visual Web Developer 中或通过使用文本编辑程序完成此任务. 使用 IIS 7.0 命令行工具 (Appcmd.exe).使用此实用工具,可以指定 IIS 配置设置和 Web 应用程序配置设置. 使用 Windows Management Instrumenta

IIS 5.0新功能

Windows 2000的IIS(Internet Information Services) 5.0提供甚麼樣的新功能呢? IIS 5.0新功能如下: l 安全性上:包括摘要式驗證.整合的Windows驗證.SGC (Server-Gated Cryptography ) .Microsoft Certificate Services 2.0.集區處理程序之程式保護等. l 管理上:包括IIS重新啟動.站台CPU使用時間的限制.CPU資源使用記錄.使用終端機服務遠端管理IIS.自訂錯誤訊息等.

IIS 7.0: 使用集成的ASP.NET管道增强应用程序

本文以 IIS 7.0 FastCGI 组件的预发布版为基础.文中包含的所有信息均有可能变更. 本文 讨论: ASP.NET 集成模式 添加用户身份验证 启用对搜索引擎友好的 URL 使 用输出缓存提升性能 本文使用了以下技术:IIS 7.0, .NET Framework 大约一年前,我撰写了 一篇 IIS 7.0 概述,发表在<MSDN 杂志>上(请参阅 msdn.microsoft.com/msdnmag/issues/07/03/IIS7 上的"IIS 7.0:探索用于 Wi

IIS 6.0的web园 最大工作进程数_win服务器

IIS 6.0允许将应用程序池配置成一个Web园(Web Garden).要理解Web园的概念,可以设想这样一种情形:假设有一个IIS 5.0服务器和三个Web网站,每一个Web网站运行着相同的应用程序,如果IIS 5.0能够自动按照圆形循环的模式将请求依次发送给这些功能上等价.实际上分离的Web网站,将负载分离到三个不同的进程,就可以构成一个小型的Web农场(Web Farm)--这就是Web园. 在IIS 6.0的Web园中,我们不必创建额外的Web网站,只要指定用于某个应用程序池的工作进程

IIS 6.0 应用程序池回收和工作进程使用介绍_win服务器

     公司的一个网站程序长时间运行后,速度变慢,重新启动网站后速度明显变快,估计是网站程序占用的内存和CPU资源没能及时释放,才需要每隔一段时间重启网站释放资源.但手工重启总不能算解决问题的方法,怎样才能实现自动管理呢?IIS6.0的应用程序池自动回收功能可以解决这一问题.       应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置.因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响

Windows 2003 IIS 6.0 搭建可建虚拟机的asp+.net+php+jsp+mysql+mssql_服务器

1.预安装好windows 2003 打好sp2以上补丁  安装好IIS6.0  并选择asp和.net支持.IIS默认支持asp.net 1.1 asp.net 2.0可以在网上下载安装.2.安装php.mysql及mssql.网上很多正确介绍.这里就不讲了.重点讲jsp的环境搭配.3.1.安装JAVA 2 SDK 我装在D:\JDK目录下.接下来设置环境变量,这一步很重要,别忘了:JAVA_HOME = D:\JDKCLASSPATH = D:\JDK\LIB\tools.jar;D:\JD

How To Troubleshoot ASP in IIS 5.0

问题描述 HowToTroubleshootASPinIIS5.0NOTE:Beforeyoubegin,ensurethat.htmlor.htmfilesopenontheWebserverinquestion.Ifthesefilesdonotopen,thisisnotanASPissue.1.IfaGlobal.asafileexistsintherootofyourWebsite,renameitasGlobal.old,stopandrestarttheWebservices,an

IIS 7.0使用WAS扩展HTTP之外的WCF服务

本文以 Windows Server 2008 的预发布版为基础.文中包含的所有信息均有 可能变更. 本文讨论: IIS 6.0 和 IIS 7.0 的体系结构和进程模型 IIS 6.0 如何承载 Web 服务 用 IIS 7.0 承载可靠的 WCF 服务 Windows Process Activation Service (WAS) 工作原理 支持非 HTTP 协议 本文使用了以下技术: IIS,WAS 目录 IIS 6.0 体系结构和进程模型 IIS 7.0 和 WAS 深入了解 WAS

深入剖析IIS 6.0(4)

iis 如果将IIS 5.0或IIS 4.0服务器升级到Windows 2003,IIS 6.0不会被设置成自动启动.也就是说,如果采用升级的方式安装,IIS 6.0默认是禁用的,除非遇到下列情况之一: ⑴ 以前的IIS服务器上已经安装了IIS Lockdown工具. ⑵ 存在注册子键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\RetainW3SVCStatus,且它包含一个任意的注册键.例如,你可以创建一个名为Enabl