IIS 7 中的预配选项

作者:Walter Oliver

选项表

可通过多种方式创建和管理网站。 下表列出了当前可用的选项及每一项的优点和缺点。

设置方法 说明 优点 缺点
用户界面 (UI) /远程委派 使用 IIS 管理器(IIS 附带的管理用户界面)配置 applicationhost.config 中最常见的属性。打开服务、站点或虚拟目录的属性表并更改值。 更改会立即生效,无需停止和启动服务器。 创建站点或虚拟目录或配置具有多个属性的功能时,IIS 管理器用户界面将设置所有支持属性。 IIS 管理器会通知你新值是否无效。 通过 Internet 管理大型 IIS 服务器配置或多台服务器可能很慢且繁琐。 并非所有配置属性都可以在用户界面中访问。
文本编辑器 可在 IIS 运行时使用文本编辑器(如记事本)直接编辑 applicationhost.config 文件。 条目区分大小写。 可以在一个实例中更改多个属性或创建新节点,而无需打开和关闭多个属性表。 使用运行时编辑很容易损坏 IIS 服务器。 如果编辑包含格式不正确的 XML,IIS 将无法读取 applicationhost.config,并且必须还原最后一个历史记录文件。 如果编辑包含不符合架构中规则的无效配置,则会在事件查看器中记录错误,但 IIS 的其余部分可以运行。 在剪切和粘贴 applicationhost.config 的部分内容时,必须考虑属性继承。粘贴的部分可能会从父节点继承属性,并将属性传递给子节点。 如果通过网络使用运行时编辑并且连接失败,则最终可能会生成无效的 applicationhost.config。如果对 Web 场中的多个服务器使用编辑时运行,则所需时间与使用用户界面的时间一样长。
AppCmd.exe 使用命令行工具快速更改 IIS 服务器配置。 这些工具专门开发为最受欢迎的管理任务提供解决方案。
Active Directory 服务接口 (ADSI) 使用 ADSI 通过脚本或已编译程序以编程方式配置 IIS。 更改会立即生效,无需停止和启动服务器。 使用 ADSI 配置大型站点或多台服务器快速高效。 ADSI 可编写脚本。 可以使用 ADSI 配置 IIS 4.0、IIS 5.0、IIS 5.1 和 IIS 6.0 以及启用 IIS 6.0 兼容模式的 IIS 7.0,前提是使用能够处理缺失对象和属性的错误检查。 可以使用 ADSI 扩展 IIS 架构,但不建议这样做。 如果创建了站点或虚拟目录,或使用依赖其他属性的属性,则必须确保知道还需要创建和设置哪些支持属性。 仅当启用了 IIS 6.0 兼容模式时,才可用于 IIS 7.0。 使用困难。
Windows Management Instrumentation (WMI) 使用 WMI 通过脚本或已编译程序以编程方式配置 IIS。 更改会立即生效,无需停止和启动服务器。 使用 WMI 配置大型站点或多台服务器快速高效。 WMI 可编写脚本。 如果创建了站点或虚拟目录,或使用依赖其他属性的属性,则必须确保知道还需要创建和设置哪些支持属性。 使用困难。
管理基对象 (ABO) 使用 ABO 以编程方式通过使用 C、C++ 或 Visual Basic 6.0 编写的已编译程序配置 IIS。 此方法比使用 ADSI 或 WMI 更快速,因为 ADSI 和 WMI 提供程序是 ABO 的包装器。 如果创建了站点或虚拟目录,或使用依赖其他属性的属性,则必须确保知道还需要创建和设置哪些支持属性。 ABO 不可编写脚本。 ABO 应用程序只能使用 C++ 或 Visual Basic 6.0 编写。 由于 ABO 以最低级别访问 IIS,因此比 ADSI 或 WMI 更难使用,因为无法将多行 ABO 代码压缩为一个方法调用。 此外,没有可预防配置无效设置的安全措施。 不适用于 IIS 7.0。
托管 API: 使用 Microsoft.Web.Administration 中的托管 API 通过任何 .net 应用程序以编程方式配置 IIS。 配置大型站点或多台服务器快速高效。 使用 RPC 可托管、最快和远程调用。 MWA 可以在 62 秒内创建 100,000 个站点(1600 个站点/秒) 只能在 Windows 平台上使用。 许多对象不作为强类型对象公开,必须理解更低层的 API 才能配置某些对象和属性。 需要 RPC 进行远程服务器配置。
OLE 自动化 OLE Automation ProgId=Microsoft.ApplicationHost.WritableAdminManager 可通过 Jscript 和 VBScript 使用。 配置大型站点或多台服务器快速高效。 实际上速度略快于 MWA;也可远程调用。 需要理解更低层的 API 才能配置某些对象和属性。 需要 RPC 进行远程服务器配置。