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 并展开窗口左侧的树视图,以便同时显示“默认网站”及其子网站:
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 特定的管理模块可用:
如上所述,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 编译的屏幕截图:
下面是 ASP.NET 4.5 的相应配置。 将看到配置选项已扩展到包括新的 ASP.NET 4.5 功能:
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 中各种安全功能所支持的哈希和加密算法:(注意:在下图中,下拉列表是水平排列的,因此可以显示两组选项。)
下面是 ASP.NET 4.5 的相应配置。
在 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 应用程序常用配置选项的子集:
下面是 ASP.NET 4.5 的相应配置。 “行为”部分中的可用选项已扩展到包括 ASP.NET 4.5 的新设置:
随着 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 应用程序版本动态显示适当的管理选项。