故障显示:
查看事件日志显示:
在同一 IIS 进程中不可能运行两个不同的 ASP.NET 版本。请使用 IIS 管理工...
默认情况下,在已经安装了运行库的计算机上安装 .NET Framework 时,所有 ASP.NET 应用程序都会自动更新以使用新安装的 .NET Framework 版本。唯一的例外是那些绑定到不兼容的运行库版本或更新的运行库版本的应用程序。(兼容性通常由 .NET Framework 版本号决定。不同的主版本通常是不兼容的,而不同的次要更新和内部版本号是兼容的。)尽管更高版本的 .NET Framework 设计成具有向后兼容性,您仍可能需要相应地配置 ASP.NET 应用程序以使用特定版本的运行库。
在管理安装了多 个版本的 .NET Framework 的计算机时,查看 ASP.NET 应用程序的脚本映射(有时称为应用程序映射)以确定应用程序所使用的版本通常很有用。可以使用 Internet 信息服务 (IIS) 管理控制台查看 ASP.NET 应用程序的脚本映射。
查看 ASP.NET 应用程序的脚本映射
-
打开 IIS 管理控制台。
-
展开本地计算机节点,展开“网站”,然后展开“默认 Web 服务器”[Default Web Server]。
-
右击应用程序的文件夹,然后单击“属性”。
-
在“目录”选项卡上单击“配置”。
出现“应用程序配置”对话框。
-
在“映射”选项卡中,选择ASP.NET 应用程序扩展名,如 .asmx 或 .aspx。
对话框的“可执行文件路径”列列出了到应用程序所使用的 ASP.NET ISAPI 扩展的路径。默认情况下,ASP.NET ISAPI 扩展安装在以下位置:
%system root%\Microsoft.NET\Framework\versionNumber
路径中显示的版本号说明了应用程序所使用的 ASP.NET ISAPI 扩展的版本号。反过来,ASP.NET ISAPI 扩展的版本确定了应用程序所使用的运行库版本。
配置应用程序以使用脚本映射
为 使重新配置 ASP.NET 应用程序的脚本映射更容易,每个 .NET Framework 安装都提供了其自己版本的 ASP.NET IIS 注册工具 (Aspnet_regiis.exe)。在 Web 服务器计算机上具有管理员特权的用户可以使用该工具将 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 应用程序的脚本映射
-
打开 Windows 命令窗口。
-
定位到包含要使用的 Aspnet_regiis.exe 工具版本的目录。记住每一版本的 .NET Framework 都有自己的版本。文件通常位于以下目录:
%system root%\Microsoft.NET\Framework\versionNumber
-
使用 -s 或 -sn 选项以及应用程序的路径运行 Aspnet_regiis.exe 工具。
下面的示例演示一个命令,该命令更新一个名为 SampleApp1 的应用程序的脚本映射:
Aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1
配置应用程序池
IIS 5.0 版使用 ASP.NET 进程模型 (Aspnet_wp.exe)。在 ASP.NET 进程模型下,每一个单独的应用程序版本在运行时自动运行在独立的进程中。定位到同一运行库版本的所有应用程序共享同一进程(或网络园模式中的多个进程)。 然而,IIS 6.0 使用 IIS 6.0 进程模型 (w3wp.exe),并使用一项隔离功能,称为应用程序池。只要应用程序共享同一池标识,应用程序池就允许它们在一个或多个进程中同时运行。如果应用程 序所分配的应用程序池不同,它们就永远不能在同一进程中运行。
![]() |
---|
IIS 6.0 仅在处于 IIS 5.0 隔离模式时支持 ASP.NET 版本 1.0。 |
如果在使用 IIS 6.0 的计算机上安装了多个版本的 .NET Framework,您可能会在“应用程序事件”日志中看到下面的错误信息:
“不能在同一 IIS 进程中运行不同版本的 ASP.NET。请使用 IIS 管理工具重新配置服务器,以便在单独的进程中运行应用程序。”
如 果有多个版本的 ASP.NET 配置为在同一进程中进行,就会发生该错误,因为不同版本的 .NET Framework 和运行库不能在同一进程中并行运行。因此,使用某一特定版本的运行库的 ASP.NET 应用程序不能与使用其他版本的应用程序共享进程。如果两个或多个应用程序被映射到不同版本的 ASP.NET,但共享同一应用程序池,通常就会发生这一错误。
![]() |
---|
每个应用程序的进程隔离都是手动配置的。 |
在 IIS 6.0 中禁用 IIS 5.0 隔离模式
-
打开 IIS 管理控制台。
-
右击“网站”文件夹,然后单击“属性”。
-
在“服务”选项卡上,清除“以 IIS 5.0 隔离模式运行 WWW 服务”[Run WWW service in IIS 5.0 isolation mode]复选框。
在 IIS 6.0 中向某一 ASP.NET 应用程序分配池标识
-
打开 IIS 管理控制台。
-
展开本地计算机节点,展开“网站”,然后展开“默认 Web 服务器”[Default Web Server]。
-
右击应用程序的文件夹,然后单击“属性”。
-
在“目录”选项卡上,从“应用程序池”列表选择所需的池标识。
在 IIS 6.0 中创建池标识
-
打开 IIS 管理控制台。
-
展开本地计算机节点。
-
右击“应用程序池”文件夹,指向“新建”,再单击“应用程序池”。
出现“添加新应用程序池”对话框。
-
在“应用程序池”文本框中输入新的池标识,再单击“确定”。
问题:在同一 IIS 进程中不可能运行两个不同的 ASP.NET 版本。请使用 IIS 管理工具重新配置服务器以在一个单独的进程中运行应用程序。
解决方法:新建一个应用池就可以了