作者:IIS 团队的 Saad Ladki
兼容性
版本 | 说明 |
---|---|
IIS 7.0 及更高版本 | 本文中所述的功能是在 IIS 7.0 中引入的。 |
IIS 6.0 及更低版本 | 在 IIS 7.0 之前,本文中所述的功能不受支持。 |
介绍
在以前的 IIS 版本中,将网站从一台服务器移动到另一台服务器意味着必须在计算机级别的元数据库存储库中显式配置 IIS 应用程序设置,然后应用程序才能正常运行。 但是,使用 IIS 7.0 及更高版本,部署网站的过程现在变得更加容易。
分布式配置
IIS 7.0 及更高版本提供了一些对存储和访问配置数据的方式的重大改进。 以前 IIS 版本中旧的集中式配置存储(称为元数据库)已不复存在。
相反,IIS 7.0 及更高版本提供了一个基于分布式 XML 配置文件层次结构的新委托配置系统。 此层次结构由全局 ApplicationHost.config 文件(其中包含服务器级别的配置默认值)和位于应用程序目录结构中的分布式 Web.config 文件组成。 这些文件与 ASP.NET 应用程序框架使用的 Web.config 文件相同,用于以可移植的方式存储应用程序设置。 因此,IIS 和 ASP.NET 配置设置可以使用干净的强结构化 XML 指令并列存储。
IIS 继续支持使用 ABO API 写入旧元数据库的现有安装代码或使用更高级别的 Active Directory® 服务接口 (ADSI) 和 Windows Management Instrumentation (WMI) 对象来配置 IIS 的脚本。 它通过提供一个模拟 ABO API 的兼容层来实现这种改进,所有其他遗留配置 API 都基于该兼容层。 这样,此类脚本就可以像在以前版本的 IIS 中那样读取和更改配置。 有关 IIS 7.0 及更高版本中元数据库兼容性功能的详细信息,请参阅 IIS 配置兼容性。
功能及位置
如前所述,新的分布式配置层次结构由以下 XML 配置文件组成:
ApplicationHost.config
这是 IIS 7.0 及更高版本的主配置文件。 ApplicationHost.config 文件存储全局或计算机范围的配置设置,位于 Web 服务器根级别的 %windir%\system32\inetsrv\config
目录中。 该文件中有两个主要配置部分:
- system.applicationHost - 包含站点、应用程序、虚拟目录和应用程序池的配置设置。 它们是无法分发的集中设置。
- system.webServer - 包含所有其他设置的配置,包括全局默认值。 可以委托和分发这些设置。
Web.config
特定于 URL 的配置设置可以直接存储在代码中,也可以使用 Web.config 文件存储在网站的内容目录中。 这些文件与 ASP.NET 应用程序框架使用的 Web.config 文件相同,用于存储应用程序设置。
注意
还可以使用 <location>
标记将特定于 URL 的配置设置存储在 ApplicationHost.config 文件中。
Redirection.config
包含用于将 Web 服务器重定向到另一台计算机上的配置文件和架构的设置。
好处
分布式配置释放了 IIS 中的许多强大功能,其中包括:
- 使开发人员能够在与代码或内容相同的目录中指定网站或应用程序的配置。
- 允许将网站和应用程序从开发转移到测试或者从测试转移到生产,只需将配置文件以及代码和内容复制到新计算机即可。 网站将立即启动并运行,同时部署所需的设置。
- 使管理员能够在多个前端 Web 服务器和 Web 场(将网站投入生产后)之间轻松共享配置信息,从而避免成本高昂且容易出错的复制和手动同步问题。 为此,可以将 Web.config 文件存储在后端文件服务器上,并从多个前端 Web 服务器引用这些文件。