处于性能目的,工作线程能够根据一些标准(通过MACHINCE.CONFIG文件配置)被回收。这些标准包括进程生命周期,请求以及队列数量,空闲时间,内存分配。一旦达到这些参数中一项临界值,ISAPI扩展将生成一个新的工作进程实例用来处理请求。实际上,先前的进程实例并没有被关闭,但是他被终止服务等待的请求。
IIS6.0处理模型
IIS6是WINDOWS2003系统默认的。在IIS5处理模型的上他有几个改变和改进。其中之一最大改变就是应用程序池概念。在IIS5系列应用程序上,即所有的appDomains—运行在asp.net工作进程上。为了在安全以及特性上完成一个出色的界定,IIS6处理模型允许应用程序运行在同一个工作进程的不同拷贝上。每个应用程序池能够包含多个appdomains(运行在单独一个工作进程拷贝上).换而言之,这个变化是从单一进程运行所有程序到多个进程运行每一个应用池。这个模型也叫做工作过程隔离模式。
例外一个大变化相对先前的模型在IIS监听所有传入数据方面。在IIS5里,由IIS进程,inetinfo.exe监听指定的TCP端口。在IIS6中,传入请求被处理并队列在核心级别来替换先前通过核心驱动调用http.sys的用户模式;这种方法有几个优势相对于先前的模式被叫作 kernel-level 请求队列。
图表3 IIS6处理模型

图表3主要由请求处理组成。一旦一个请求到达核心级别设备驱动http.sys,然后发送到相应的应用程序池队列,每个队列属于一个指定的应用程序池。
工作进程负责加载asp.net ISAPI扩展,依次加载 CRL 委派所有工作到HTTP运行时。
W3WP.exe进程与IIS5下面的aspnet_wp.exe不同,他不是asp.net特有的,能够用来处理任何类型的请求。什么样的ISAPI模块被加载类型根据需要的服务资源类型。