IIS 4.0、IIS 5.0、IIS 5.1 和 IIS 6.0 在默认行为和设置上存在一些显著的重要区别。
本主题包括下列信息:
下表总结了不同版本的 IIS 之间的重要区别。
IIS 4.0 | IIS 5.0 | IIS 5.1 | IIS 6.0 | |
---|---|---|---|---|
平台 | Windows® NT® 4.0 | Windows 2000 | Windows XP Professional | Windows Server 2003 家族 |
体系结构 | 32 位 | 32 位 | 32 位和 64 位 | 32 位和 64 位 |
应用程序进程模型 | TCP/IP 内核
MTX.exe |
TCP/IP 内核
DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机) |
TCP/IP 内核
DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机) |
HTTP.sys 内核
当 IIS 以 IIS 5.0 隔离模式运行时:Inetinfo.exe(对于进程内应用程序)或 DLLhost.exe(对于进程外应用程序) 当 IIS 以工作进程隔离模式运行时:W3wp.exe(多工作进程) |
配置数据库配置 | 二进制 | 二进制 | 二进制 | XML |
安全性 | Windows 身份验证
SSL |
Windows 身份验证
SSL Kerberos |
Windows 身份验证
SSL Kerberos 安全向导 |
Windows 身份验证
SSL Kerberos 安全向导 Passport 支持 |
远程管理 | HTMLA | HTMLA | 无 HTMLA
终端服务 |
远程管理工具 (HTML)
终端服务 |
群集支持 | 在 Windows NT 4.0 中 | IIS 群集 | Windows 支持 | Windows 支持 |
WWW 服务 | Windows NT 4.0 上的 IIS | Windows 9x 上的个人 Web 管理器
Windows 2000 上的 IIS |
(可选)Windows XP Professional 上的 IIS | Windows Server 2003 家族成员上的 IIS |
已对 IIS 6.0 进行了重新设计以便利用基本 Windows 内核 HTTP.sys。这使其具有内置的响应和请求缓存和队列功能,并能够将应用程序进程请求直接路由到工作进程,从而改善可靠性和性能。
IIS 6.0 引入了两种用于配置应用程序环境的操作模式:工作进程隔离模式和 IIS 5.0 隔离模式。在安装 IIS 6.0 时默认的隔离模式取决于您执行的是全新安装还是升级。
有关从一种隔离模式切换到另一种隔离模式的信息,请参阅配置隔离模式。
IIS 5.0 隔离模式按照与 IIS 5.0 中的进程管理相似的方式管理应用程序进程:所有的进程内应用程序都在 Inetinfo.exe 内运行,进程外应用程序在单独的 DLL 宿主中运行。一些现有应用程序可能无法并发运行或将会话状态与应用程序分开存储。因此,在 IIS 5.0 隔离模式中运行进程可以确保与大多数现有应用程序的兼容性。下图显示如何在 IIS 5.0 隔离模式中处理应用程序进程。
当配置为在工作进程隔离模式下执行时,所有的应用程序代码都在隔离环境中运行。这种设计消除了一些现有的瓶颈。工作进程隔离模式允许管理员将任何内容(从单个 Web 应用程序到多个站点)隔离到独立的工作进程中。这防止一个应用程序或站点停止另一个应用程序或站点。另外,将应用程序或站点隔离到它们各自的进程空间中可简化许多管理任务,如重新启动(与系统上运行的所有其他站点或应用程序无关)、更改应用程序使用的组件、调试、监视计数器、限制资源,等等。下图显示了 IIS 如何在工作进程隔离模式下管理应用程序。
HTTP 请求被路由到正确的应用程序池队列中,这意味着为应用程序池提供服务的用户模式工作进程直接从内核中提取请求,同时消除了在将请求发送到进程外 DLL 宿主时遇到的不必要的进程跳转。在 IIS 6.0 中,不再有进程内应用程序的概念;所有必需的 HTTP 应用程序运行时服务(如 ISAPI 扩展支持)在任何应用程序池中均可使用。这种设计可防止不能正常工作的 HTTP 应用程序或网站中断该计算机上由其他进程服务的其他 HTTP 应用程序(或其他网站)。因为对于隔离的应用程序进程,在必要时,可在不影响正由其他进程提供服务的其他内容或应用程序的情况下,终止进程以卸载所有资源,因此组件的卸载变得更加方便。还能够支持在每个应用程序池的进程级别可用的其他操作系统服务(例如,CPU 限制)。
而且,工作进程隔离模式中维护万维网发布服务(WWW 服务)全部功能的关键部分完全在工作进程外部运行。IIS 6.0 内核模式驱动程序 HTTP.sys(Windows 的通用 HTTP 处理程序)、WWW 服务管理和监视组件隔离了核心 Web 服务器的关键部分。这两个组件都受到保护且不允许向其中加载第三方代码。这种设计防止不能正常工作的 HTTP 应用程序中断服务器上的 WWW 服务。
有关隔离模式的详细信息,请参阅 IIS 隔离模式。
IIS 6.0 的配置数据库以 XML 文件形式存储,而不是以早期版本中的二进制格式存储。位置仍在原处,但是操作方式(更新、回滚、还原和扩展)已发生了变化。有两个重要文件,并非一个:MetaBase.xml 和 MBSchema.xml。
有关 IIS 配置数据库的详细信息,请参阅关于配置数据库。
在早期版本的 IIS 中,可以从编译的 C++ 应用程序使用管理基本对象 (ABO) 或者从 C++ 或脚本文件使用 Active Directory 服务界面 (ADSI) 以编程方式管理 IIS。IIS 6.0 包括了 Windows 管理规范 (WMI) 提供程序,WMI 这一技术允许管理员以编程方式控制所有服务和应用程序。详细信息,请参阅使用 IIS WMI 提供程序。有关新的 ADSI 方法的信息,请参阅 IIS 6.0 中的配置数据库更改。
从 IIS 6.0 开始,Microsoft Active Server Pages (ASP) 可以与 Microsoft ASP.NET 一起使用。有关配置 IIS 以运行 ASP.NET 应用程序的信息,请参阅 ASP.NET。有关 IIS 6.0 中 ASP 功能更改的信息,请参阅 ASP 中的重要更改。
当 IIS 网站繁忙时,可能会出现这种情况:已经产生了最大数量的 ASP 线程,而一些 ASP 线程却挂起,这会导致性能降低。IIS 6.0 能够通过回收作为 ASP ISAPI 扩展 (ASP.dll) 的特定实例宿主的工作进程来解决线程挂起问题。当 ASP 线程在 IIS 6.0 中挂起时,ASP.dll 调用 ISAPI 服务器支持函数 HSE_REQ_REPORT_UNHEALTHY,WWW 服务回收作为 ASP.dll 宿主的工作进程,并在事件日志中创建一个项目。
有关 ISAPI 服务器支持函数的详细信息,请参阅 MSDN® Online 上 ISAPI 扩展参考中的 ServerSupportFunction。
要点 为了更好地预防恶意用户和攻击者的攻击,没有将 IIS 默认安装到 Microsoft® Windows® Server 2003 家族的成员上。而且,当您最初安装 IIS 时,该服务在高度安全和“锁定”的模式下安装。在默认情况下,IIS 只为静态内容提供服务 - 即,ASP、ASP.NET、服务器端包含、WebDAV 发布和 FrontPage® Server Extensions 等功能只有在启用时才工作。如果安装 IIS 之后未启用该功能,则 IIS 返回一个 404 错误。您可以为动态内容提供服务,并通过 IIS 管理器中的 Web 服务扩展节点启用这些功能。同样,如果应用程序扩展未在 IIS 中进行映射,则 IIS 返回一个 404 错误。要映射扩展,请参阅设置应用程序映射。有关如何排解 404 错误(包括 404.2 和 404.3)、与 IIS 6.0 的新安装相关的问题或从低版本的 IIS 进行升级的详细信息,请参阅疑难解答。
通过 Web 服务器证书向导和 CTL 向导,您可以同步 Web 和 NTFS 的安全设置、获得并安装服务器证书以及创建和修改证书信任列表。还可以选择一个加密服务提供程序 (CSP) 以使用证书加密数据。 详细信息,请参阅使用证书向导。
IIS 6.0 中的其他安全性变动包括下列内容:
要点 如果使用 WWW 服务,则强烈建议您在升级到 Windows Server 2003 家族中的产品之前,在 Windows 2000 Server 上运行 IIS 锁定向导。IIS 锁定向导通过禁用或删除 Windows 2000 Server 安装中不需要的功能来保护计算机的安全。否则,升级后计算机上仍保留这些功能,这会使您的服务器易受攻击。
为了限制分配给 ASP 页的内存量,IIS 已经将
在 64 位 Windows Server 2003 家族的操作系统上,IIS 作为 64 位应用程序运行。这意味着不能从 64 位 Windows Server 2003 家族的操作系统上的 IIS 调用 32 位应用程序。例如,Jet 数据库引擎将不能转换为 64 位应用程序,因此,不能使用 ActiveX® 数据对象 (ADO) 从 ASP 页打开 Microsoft Access 数据库。但是,仍可以使用 ADO 访问其他驱动程序,如 SQL 和 Exchange。