如果Web服务器操作系统是Windowsserver2003,则IIS6.0进程模型是asp.net的默认选择。其名称明确之处,该模型需要IIS6.0、然后,在windows2003的服务器上,仍然可以让asp.net遵守IIS5.0进程模型的规则。可以通过修改machine.config文件中的节,显示的启用该模型。
<processModelenable=“true”>
当然,我并不建议且滑倒IIS5.0进程模型,虽然这样做是合法的。主要原因在于:IIS6.0利用不同的内部模块的管道来处理一个入站请求,并且只有在仿真模式下运行时才能模仿IIS5.0的行为。IIS6.0管道以一个名为完wp.exe的工作进程为中心。所有被分配给同一个应用程序池的Web应用程序共享该可执行进程的一个副本。用IIS6.0的行话来说,一个应用程序池是一组共享相同的工作进程的副本的Web用用程序。IIS6.0使我们能够指定应用程序池,以实现Web服务器上托管的各应用程序所需的隔离程度。FTP
w3wp.exeworker进程加载aspn_isapi.dll;该ISAPI扩展又加载通用语言运行库(CLR),并启动ASP.NET运行库管道来处理该请求。当IIS6.0进程模型正在使用时,内置的ASP.NET工作进程会被禁用。
注意:只有asp.net1.1完全利用IIS6.0进程模型。如果把asp.net1.0安装到一台windows2003机器上,则默认的进程模型是IIS5.0进程模型。之所以会这样,是因为asp.net1.1所带的aspnet_isapi.dll能够识别它的宿主,并根据需要加载CLR。asp.net1.0所带的aspnet_isapi.dll只能把请求转发给asp.net工作进程,绝对不会加载CLR。