IIS 6.0 核心组件由内核模式进程和用户模式进程组成。本主题包含有关下面各个核心组件及其如何相互作用的信息:
超文本传输协议 (HTTP) 侦听程序被实现为名为 HTTP.sys 的内核模式设备驱动程序。HTTP.sys 是 Windows 网络子系统的一部分。然而,HTTP.sys 却用作 IIS 6.0 的一个核心组件。
通过把 HTTP.sys 作为内核模式组件来运行,IIS 6.0 提供了下面两种增强的性能,但在把 HTTP 侦听程序作为用户模式运行时并不包含这两种增强的性能:
当在 IIS 中创建网站时,使用 HTTP.sys 注册站点,然后 HTTP.sys 将 Web 请求传送到正在运行网站的用户模式进程中。HTTP.sys 也将响应送回客户端。除了从其内部缓存中检索存储的响应以外,HTTP.sys 并不处理它所接收到的请求。因此,应用程序特定代码永远不会加载到内核模式中。这使得应用程序特定代码错误不会影响到内核模式进程或导致系统故障。
HTTP.sys 还提供了 IIS 使用的其他服务,包括以下内容:
WWW 服务管理和监视是“万维网发布服务”(WWW 服务)的新组件。它负责管理任务和进程管理。在管理角色下,WWW 服务管理和监视将实现 WWW 服务的服务控制功能;与配置数据库交互以获得传递给 HTTP.sys 或在管理工作进程时所使用的配置数据;并支持剩余运行时服务管理。在管理角色下,WWW 服务管理和监视负责管理工作进程,其中包括启动工作进程以及维护其在运行时的信息。
WWW 服务管理和监视以用户模式在非共享的 svchost.exe 下运行,而且是作为 LocalSystem 运行。
工作进程是以用户模式运行的应用程序。它的一般角色包括处理请求以返回静态页面、调用 Internet 服务器 API (ISAPI) 扩展或筛选器或运行通用网关接口 (CGI) 处理程序。工作进程在物理上被实现为名为 W3wp.exe 的可执行文件,并由“WWW 服务管理和监视”进行控制。
在默认情况下,工作进程作为 NetworkService 来运行,这使之具有与所需要的功能相兼容的最强安全性(最少的访问权)。工作进程使用 HTTP.sys 用于在 Web 上发送请求和接收响应。工作进程也运行应用程序代码,如 Microsoft ASP.NET 应用程序。根据 IIS 的配置情况,可以有多个运行的工作进程来同时处理不同的 Web 应用程序。这种设计通过进程边界将应用程序隔离起来,并有助于实现 Web 服务器的最大可靠性。
Inetinfo.exe 是主控 IIS 6.0 组件而非除 WWW 服务的用户模式组件。这些组件包括文件传输协议服务(FTP 服务)、简单邮件传输协议服务(SMTP 服务)、网络新闻传输协议服务(NNTP 服务)和 IIS 配置数据库。Inetinfo.exe 也可主控当 IIS 6.0 处于 IIS 5.0 隔离模式下时运行的单个工作进程。
要点 在 IIS 6.0 中,运行在 Inetinfo.exe 中的服务使用 LocalSystem 标识(运行服务时的帐户)作为 DLL 运行。因为使用该帐户可以获得对本地计算机上实际每个资源的访问权,所以应小心使用 LocalSystem 帐户,特别是在 Internet 上提供服务的计算机。