Microsoft 的 Internet 信息服务器 (IIS) 是一组向客户端工作站提供 Internet 服务的服务器端程序。这包括 Web 服务器、FTP 服务器和 NNTP 服务器。它于 1995 年 2 月开始作为 NT4 的附加服务,后来成为 Windows 2000 的 CD 功能。它仍然作为 Windows XP Professional 和 Server 2003(包括 R2)的一部分提供,但现在默认安装。 IIS 直接与 Apache 竞争,后者是最流行的开源 Web 服务器,不仅可以在 Windows 上运行,还可以在各种 Linux 和 Unix 系统上运行。根据 Netcraft 研究 (www.netcraft.com),当今互联网上有超过 1 亿个网站,其中大约 60% 运行 Apache,31% 运行 IIS;数量在过去一年中有所增加。
IIS 版本 5 和 6 对于 .NET 用户很重要,因为它们都通过 ASP.NET 支持 .NET Framework(我们在第 138 部分中对此进行了探讨)。尽管 IIS7 是最新版本,并将作为 Windows Vista 和最终 Longhorn Server 的组件提供,但没有计划将 IIS7 向后移植到早期版本的 Windows。 Microsoft 已经设置了 IIS7 的测试版本,您可以通过 Internet 在 http://VirtualLabs.IIS.NET 上使用该版本。
历史上,Microsoft 第一个合适的 Web 服务器平台是 Windows NT4 上的 IIS4,并通过 Windows 2000 Server 上的 IIS5 进一步改进。然而,IIS5 遇到了许多可扩展性和可管理性问题,导致对 IIS6(作为 Windows Server 2003 的一部分提供)进行了重大重写。 IIS6 引入了一种新的进程模型,该模型提高了可扩展性并显着提高了安全性。自三年多前发布以来,IIS6 拥有可靠的安全记录,但安全信息却很少。这是对 IIS5 的重大改进。
IIS7 继续创新,可概括如下:
• IIS7 现在可以安装在客户端操作系统(例如Vista)上,允许开发人员在同一环境中构建和测试Web 应用程序。 IIS6 无法安装在 Windows XP 等客户端操作系统上。
• 提高服务器安全性并尽量减少修补。 IIS7封装了40多个功能模块,每个功能模块都可以独立安装,大大减少了潜在的攻击面和服务器上的内存占用。部署的单元越小,打补丁的需求就越少(尽管如果它被证明像 IIS6 一样可靠,那么无论如何也不会有太多补丁)。
• 新的可扩展性框架可以加快Web 应用程序的开发速度。 IIS7 功能基于一组新的公共 Web 服务器 API,开发人员可以使用它们来扩展、替换或添加功能。它还提供了事件记录、配置和管理工具的可扩展功能集,允许开发人员使用第三方扩展工具包创建具有统一外观的 Web 应用程序。
• 通过提供将所有 IIS 和 ASP.NET 设置存储在同一个 XML 文件(例如 web.config)中的统一配置系统,简化 Web 应用程序的部署和配置。它还包括一组用于跨 Web 平台访问配置的托管代码和脚本 API,并且这个新的配置系统支持可以与网站或应用程序的内容一起存储的分布式配置文件。