在默认情况下,当在已安装 .NET Framework 的计算机上安装 .NET Framework 时,所有的 ASP.NET 应用程序都会自动更新为使用该版本的 .NET Framework。唯一的例外是绑定到非兼容版本的运行库或更新版本的运行库的应用程序。虽然高版本的 .NET Framework 已设计成向后兼容,但您仍可能希望将 ASP.NET 应用程序配置为使用早期的版本。下列章节描述了配置 ASP.NET 应用程序以使用特定版本的 .NET Framework 的过程。
在管理安装了多个 .NET Framework 版本的计算机时,查看 ASP.NET 应用程序的脚本映射对于确定应用程序使用的是哪个版本的 .NET Framework 十分有用。您可以使用 Internet 信息服务管理控制台来查看 ASP.NET 应用程序的脚本映射。
查看 ASP.NET 应用程序的脚本映射
对话框的“可执行路径”列中将列出应用程序所使用的 ASP.NET ISAPI 版本的路径。在默认情况下,ASP.NET ISAPI 安装在下列位置:
systemroot\Microsoft.NET\Framework\versionNumber
路径中显示的版本号表示应用程序使用的 ASP.NET ISAPI 的版本号。ASP.NET ISAPI 的版本决定了应用程序使用哪个版本的运行库。
为了更便于为 ASP.NET 应用程序重新配置脚本映射,每个 .NET 框架安装程序都附带相关版本的 ASP.NET IIS 注册工具 (Aspnet_regiis.exe)。管理员可以使用该工具将 ASP.NET 应用程序重新映射到与该工具相关的 ASP.NET ISAPI 版本上。
注意 因为 Aspnet_regiis.exe 与特定版本的 .NET Framework 联系在一起,所以管理员必须使用相应版本的 Aspnet_regiis.exe 来配置 ASP.NET 应用程序的脚本映射。Aspnet_regiis.exe 只是将 ASP.NET 应用程序的脚本映射重新配置到与该工具相关的 ASP.NET ISAPI 版本上。
该工具还可用于显示所有已安装的 ASP.NET 版本的状态、注册相关版本的 ASP.NET、创建客户端脚本目录和执行其他配置操作。
使用 Aspnet_regiis.exe 更新 ASP.NET 应用程序的脚本映射
systemroot\Microsoft.NET\Framework\versionNumber
SampleApp1
的应用程序更新脚本映射的示例命令行。
Aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1
IIS 6.0 以前的版本使用 ASP.NET 进程模型 (Aspnet_wp.exe)。在 ASP.NET 进程模式下,每个唯一的应用程序版本在运行时都自动以独立的进程运行。使用相同版本的运行库的所有应用程序都共享相同的进程(或 Web 园模式中的进程)。然而,IIS 6.0 使用 IIS 6.0 进程模型 (W3wp.exe) 并引入了一种称作应用程序池的新的隔离特性。应用程序池允许应用程序在一个或多个进程中同时运行,只要它们有相同的池标识。分配到不同应用程序池的应用程序决不会在相同的进程中运行。
当使用 IIS 6.0 的计算机上安装了多个版本的 .NET Framework 时,您会在应用程序事件日志中看到下列错误消息:
不能在相同的 IIS 进程中运行不同版本的 ASP.NET。请使用 IIS 管理工具重新配置服务器,以便在独立的进程中运行应用程序。
当多个版本的 ASP.NET 被配置为在相同的进程中运行时,就会出现该错误。不同版本的 .NET Framework 和运行库不能并行地共存于相同的进程中。因此,使用特定运行库版本的 ASP.NET 应用程序不能与使用其他运行库版本的应用程序共享进程。当两个或两个以上的应用程序被映射到不同 ASP.NET 版本,但却共享相同的应用程序池时,通常会出现该错误。
要使用应用程序池,请先确认已禁用了 IIS 5.0 隔离模式。然后,请在 Internet 信息服务管理控制台中导航到所需的应用程序,并为其指派应用程序池。如果想将应用程序与现有的应用程序池隔离开,请创建新的池标识。
注意 每个应用程序的进程隔离都是手动配置的。
禁用 IIS 6.0 中的 IIS 5.0 隔离模式
为 IIS 6.0 中的 ASP.NET 应用程序指派池标识
在 IIS 6.0 中创建池标识