VS.NET(C#)-5.19_IIS6架构模型:应用程序池(Application Pools)简介

1,概述

    如果你的服务器是从windows2000升级到windows2003,那么IIS 5.0也会被升级到IIS6.0,这种情况下,IIS是运行在IIS5.0隔离模式下的。

    如果你的服务器是新安装的windows2003,那么IIS是运行在工作进程隔离模式下的。

因此,在IIS6.0中有两种应用程序隔离模式IIS5隔离模式工作进程隔离模式

2,应用程序隔离的目的

    作为一个web应用程序运行的平台,在IIS中将会运行着很多个web应用程序,每个web应用程序的稳定性也各不相同。为了保证IIS的高度稳定性和可靠性,要求在IIS中运行的各个web应用程序彼此相互独立,互不影响。某一个web应用程序的崩溃不会导致其他web应用程序的崩溃或者整个IIS的崩溃。

3,工作进程隔离模式

IIS6.0所提供的全新的应用程序隔离模式。它的组成结构如下图所示:

VS.NET(C#)-5.19_IIS6架构模型:应用程序池(Application Pools)简介

IIS6.0中,工作进程隔离模式主要有如下几个要点

    Ø 在内核模式中实现了HTTP.SYS驱动程序,由它负责对http请求的监听。

    Ø WWW服务从Inetinfo.exe进程之中独立了出来,它运行在了新的进程SVCHost.exe之中。

    Cmd>tasklist /svc

VS.NET(C#)-5.19_IIS6架构模型:应用程序池(Application Pools)简介

    Ø  WWW服务只负责对应用程序池的创建和管理。

    Ø  HTTP.SYS驱动程序直接与应用程序池中的工作进程(WorkerProcess)通信。

    Ø  一个应用程序池中可以运行一个或者多个web应用程序,并且由一个或者多个工作进程来管理它们。

    Ø  工作进程(WorkerProcess)之中实现了原来WWW服务的功能:接收HTTP.SYS转发过来的用户http请求。WWW服务将不再负责这部分工作。观察svchost.exe进程:

VS.NET(C#)-5.19_IIS6架构模型:应用程序池(Application Pools)简介