选项表
可通过多种方式创建和管理网站。 下表列出了当前可用的选项及每一项的优点和缺点。
设置方法 | 说明 | 优点 | 缺点 |
---|---|---|---|
用户界面 (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 进行远程服务器配置。 |