IIS 8.0 ASP.NET 配置管理

作者:Won Yoo

兼容性

版本 说明
IIS 8.0 IIS 管理工具已针对 IIS 8.0 中的 ASP.net 4.5 进行了更新。
IIS 7.5 IIS 管理工具尚未针对 IIS 7.5 中的 ASP.net 4.5 进行更新。
IIS 7.0 IIS 管理工具尚未针对 IIS 7.0 中的 ASP.net 4.0 进行更新

问题

Windows Server 2012 默认包括 .NET Framework 4.5,以及 .NET 3.5 Framework 的可选安装。 开发人员和管理员经常需要同时运行 ASP.net 3.5 和 ASP.net 4.5 Web 应用程序,因此他们也需要能够适当地管理这两个应用程序。

解决方案

IIS 8.0 支持使用图形 IIS 管理器工具和 IIS 命令行管理工具管理 ASP.NET 3.5 和 ASP.NET 4.5 应用程序。

在读取或写入 ASP.NET 应用程序的配置信息时,图形和命令行 IIS 管理工具都以特定于版本的方式运行。 例如,IIS 服务器管理器中运行的 ASP.NET 管理模块将显示适用于应用程序使用的特定 ASP.NET 版本的配置选项。

分步说明

先决条件:

本演练中演示的概念需要安装有以下内容的 Windows Server 2012 计算机:IIS 8.0、ASP.NET 3.5 和 ASP.NET 4.5。

在此演练之前,读者应已完成配套演练:在 IIS 8.0 上使用 ASP.NET 3.5 和 ASP.NET 4.5。 该文档引导读者完成所有三个功能的安装,以及两个版本的 ASP.NET 示例应用程序。

已知 bug 的解决方法:

此功能目前没有已知的 bug。

显示 ASP.NET 管理模块

启动 IIS 管理器 UI 并展开窗口左侧的树视图,以便同时显示“默认网站”及其子网站:

Screenshot of the I I S Manager U I. The navigation tree is on the left pane. Default Web Site is selected. The icons dot net Roles, dot net Users, and Providers are highlighted.

IIS 管理器 UI 的右侧部分显示了可用于管理树视图中突出显示的 ASP.NET 应用程序的管理模块。 在这种情况下,由于选择了“默认网站”,并且默认情况下此网站支持 ASP.NET 4.5,IIS 管理器显示 15 种不同的 ASP.NET 特定的管理模块。 上方以红色轮廓显示的图标是仅可用于 ASP.NET 4.5 应用程序的三个管理模块。

可以在下方的 IIS 管理器中看到管理 ASP.NET 3.5 和 ASP.NET 4.5 应用程序之间的高级差异。 由于“example35”应用程序是为 ASP.NET 3.5 配置的,因此只有 12 个 ASP.NET 特定的管理模块可用:

Screenshot of the I I S Manager UI dialog box. In the left pane, example thirty five is selected.

如上所述,IIS 8.0 中的 IIS 管理器在管理 ASP.NET 4.5 时支持三个附加管理模块:

  • 提供程序:此管理模块支持对 ASP.NET 4.5 的成员资格、角色管理器和配置文件功能的可插入暂留提供程序进行集中式管理。
  • .NET 用户:ASP.NET 4.5 应用程序的基于交互式 UI 的成员资格用户创建、删除和修改。
  • .NET 角色:基于 UI 的角色创建/删除,以及与“.NET 用户”模块的集成,用于向角色添加用户和从角色中移除用户。 与前两个管理模块一样,“.NET 角色”模块用于管理 ASP.NET 4.5 应用程序

管理 ASP.NET 编译设置

ASP.NET 3.5 和 ASP.NET 4.5 的许多管理模块都具有相同功能。 然而,随着一些 ASP.NET 功能的发展,在较新的 .NET Framework 版本中添加了其他配置选项。 IIS 管理器中的 ASP.NET 管理模块通过根据所管理的 ASP.NET 应用程序版本动态更改显示的选项来支持这一点。

以下是针对 ASP.NET 3.5 的 .NET 编译的屏幕截图:

Screenshot of the dot NET Compilation for A S P dot NET three dot five. The Display and Friendly Names columns are shown.

下面是 ASP.NET 4.5 的相应配置。 将看到配置选项已扩展到包括新的 ASP.NET 4.5 功能:

Screenshot of the dot NET Compilation for A S P dot NET three dot five. Enable J I T Profiling and Enable Prefetch behaviors are highlighted.

ASP.NET 4.5 应用程序中提供的两个新选项是:

  • 启用 JIT 分析:默认情况下,ASP.NET 4.5 将与 CLR 的 JIT 编译配合使用,以使用其他 CPU 内核对推测性 JIT 执行路径进行后台编译。
  • 启用预提取:ASP.NET 4.5 功能仅在 Windows Server 2012 上提供,它将 ASP.NET 4.5 编译系统与 Windows Server 8 Superetch 服务集成在一起。 当 Superfetch 服务和 ASP.NET 预提取选项启用后,Windows Server 2012 将分析 ASP.NET 编译,以便在加载托管程序集时动态优化磁盘性能。

管理 ASP.NET 计算机密钥设置

下方是 ASP.NET 3.5 的 计算机密钥屏幕截图。 “验证方法”或“加密方法”下拉列表显示 ASP.NET 3.5 中各种安全功能所支持的哈希和加密算法:(注意:在下图中,下拉列表是水平排列的,因此可以显示两组选项。)

Screenshot of the Machine Key dialog box. the S H A one Validation Method is selected. The Auto Encryption method is selected.

下面是 ASP.NET 4.5 的相应配置。

Screenshot of the Machine Key dialog box. The H M A C S H A two five six, the H M A C S H A three eight four, and the H M A C S H A five one two are highlighted.

在 ASP.NET 4.5 中,可以使用相同的加密算法集(AES 早在 .NET 2.0 时就可以使用)。 然而,在 ASP.NET 4.5,对哈希算法的内置支持已经扩展到包括 SHA-2 系列密钥哈希算法 (HMACSHA256、HMACSHA384 和 HMACSHA512)。

管理 ASP.NET 页面和控件

下面是 ASP.NET 3.5 的页面和控件屏幕截图。 管理模块将显示 ASP.NET 3.5 应用程序常用配置选项的子集:

Screenshot of the Pages and Controls page for A S P dot NET three dot five. The Buffer behavior is highlighted.

下面是 ASP.NET 4.5 的相应配置。 “行为”部分中的可用选项已扩展到包括 ASP.NET 4.5 的新设置:

Screenshot of the Pages and Controls page. The Client I D Mode and Control Rendering Compatibility Version Behaviors are highlighted.

随着 ASP.NET 在不同版本中的发展,各种功能和控件会不断修改 HTML、Javascript 和 CSS。 然而,现有应用程序可能预期呈现输出的特定格式。 ASP.NET 4.5 可以配置为使用“页面和控件”管理模块中公开的新设置来支持较旧的呈现格式:

  • ClientID 模式:默认为“可预测”的新设置,这将导致为呈现的 HTML 元素上的“id”属性发出稳定的标识符。 此设置可以更改为“AutoID”,以模拟早期版本的 ASP.NET 中使用的 ID 生成行为。
  • 控件呈现兼容性版本:正如此设置的名称所示,它控制各种 ASP.NET 控件使用哪个版本的 HTML/Javascript/CSS 输出。 此属性可以设置为“3.5”,在这种情况下,ASP.NET 4.5 将发出与 ASP.NET 3.5 所创建格式匹配的输出。

总结

IIS 8.0 支持使用不同应用程序池在同一台计算机上运行 ASP.NET 3.5 和 ASP.NET 4.5 应用程序,以托管每个 .NET Framework 版本。 为了支持管理这两种类型的 ASP.NET 应用程序,IIS 8.0 的管理工具(UI 和命令行)还支持管理多个 ASP.NET 版本。 此外,IIS 8.0 服务器管理器 UI 根据所管理的 ASP.NET 应用程序版本动态显示适当的管理选项。