.NET Framework 工具之——ASP.NET IIS 注册工具

标签 ASP.NET

.NET Framework 允许在同一台计算机上安装运行库的多个版本。默认情况下,在已经安装了 .NET Framework 的计算机上安装新的 .NET Framework 时,所有的 ASP.NET 应用程序都会自动更新以使用新安装的 .NET Framework 版本。唯一的例外是那些绑定到不兼容的运行库版本或更新的运行库版本的应用程序。尽管更高版本的 .NET Framework 具有向后兼容性,您仍可能需要相应地配置 ASP.NET 应用程序以使用某种旧版本。

前几天安装了VS.Net 2005 测试版,尝了尝鲜!近日要更新一个.Net的网站系统,于是乎卸载了VS.Net 2005和.NET Framework 2.0。结果发现我的IIS开始不正常了,运行asp.net程序不成功!于是重新安装了IIS,结果发现还是不正常,检查了一下IIS的配置信息,发现IIS关联的ASP.NET相关信息没有了。这可怎么办呢?于是google了一下,在微软的MSDN上找到了相关解说,原来在.NET Framework对应的版本目录中有个包含了一个工具:Aspnet_regiis.exe —— ASP.NET IIS 注册工具。于是在命令行下运行了该工具,根据帮助信息,选择了适当的参数,结果俺IIS支持俺的ASP.Net网站代码了。:)  以下引用了MSDN的相关信息。

当在一台计算机上并行执行多个 .NET Framework 版本时,映射到 ASP.NET 应用程序的 ASP.NET ISAPI 版本决定了该应用程序所使用的公共语言运行库版本。ASP.NET IIS 注册工具 (Aspnet_regiis.exe) 使管理员或安装程序可以方便地更新 ASP.NET 应用程序的脚本映射,使其指向与该工具关联的 ASP.NET ISAPI 版本。该工具还可以用于显示所有已安装的 ASP.NET 版本的状态、注册与该工具耦合的 ASP.NET 版本、创建客户端脚本目录,以及执行其他配置操作。

Aspnet_regiis [options]

您可以指定以下一个或多个选项。

选项 说明
-c 将 ASP.NET 的客户端脚本(如客户端验证脚本)安装到每个 IIS 站点目录的 aspnet_client 子目录中。
注意:安装与 Aspnet_regiis.exe 关联的 ASP.NET 版本的客户端脚本。
-e 从每个 IIS 站点目录的 aspnet_client 子目录中移除 ASP.NET 的客户端脚本。
注意:移除与 Aspnet_regiis.exe 关联的 ASP.NET 版本的客户端脚本。
-ea 从每个 IIS 站点目录的 Aspnet_client 子目录中移除所有 ASP.NET 版本的客户端脚本。
-i 安装与 Aspnet_regiis.exe 关联的 ASP.NET 版本,并更新 IIS 元数据库根目录和根目录下的脚本映射。
注意:更新使用早期 ASP.NET 版本的应用程序的脚本映射。使用新版本的应用程序不受影响。
-ir 安装与 Aspnet_regiis.exe 关联的 ASP.NET 版本并且仅在 IIS 中注册 ASP.NET。
注意: 选项不更新脚本映射。若要安装 ASP.NET 并更新脚本映射,请使用 -i 选项。
-k path 在指定的应用程序根路径及其子目录中,从所有 ASP.NET 应用程序中移除所有 ASP.NET 版本的脚本映射。
-kn path 仅在指定的应用程序根路径中,从 ASP.NET 应用程序中移除所有 ASP.NET 版本的脚本映射。
注意:选项不影响 path 子目录中的应用程序。
-lk 列出包含 ASP.NET 脚本映射的所有 IIS 元数据库项的路径和版本。
注意:显示从父项继承 ASP.NET 脚本映射的项。
-lv 列出计算机上安装的所有 ASP.NET 版本的状态和安装路径。
-r 更新 IIS 元数据库中及其下面的所有脚本映射,使其指向与 Aspnet_regiis.exe 关联的 ASP.NET ISAPI 版本。
注意:有现有的脚本映射都会更新,以指向与 Aspnet_regiis.exe 关联的 ASP.NET ISAPI 版本(与当前版本无关)。
-s path 将指向与 Aspnet_regiis.exe 关联的 ASP.NET ISAPI 版本的脚本映射安装到指定的应用程序根路径及其子目录下的所有 ASP.NET 应用程序中。更新指定的路径中及其下面使用早期 ASP.NET ISAPI 版本的所有现有脚本映射。
-sn path 将指向与 Aspnet_regiis.exe 关联的 ASP.NET ISAPI 版本的脚本映射安装到指定应用程序根路径下的 ASP.NET 应用程序中。更新指定路径中使用早期 ASP.NET ISAPI 版本的所有现有脚本映射。
注意:选项不影响 path 子目录中的应用程序。
-u 从计算机中卸载与 Aspnet_regiis.exe 关联的 ASP.NET 版本。此 ASP.NET ISAPI 版本的现有脚本映射自动重新映射到其余已安装的 ASP.NET ISAPI 版本中的最高版本。
-ua 从计算机中卸载所有 ASP.NET 版本。
-? 显示此工具的命令语法和选项。

备注

当在一台计算机上安装了多个 ASP.NET 版本时,就说 ASP.NET 是并行运行的。在此安装中,Internet 信息服务 (IIS) 需要知道哪个 ASP.NET ISAPI (aspnet_isapi.dll) 版本应该处理 ASP.NET 应用程序中的页。与 ASP.NET 应用程序关联的 ASP.NET ISAPI 版本决定了该应用程序所使用的公共语言运行库版本。在 IIS 中,ASP.NET 应用程序通过脚本映射与 ASP.NET ISAPI 版本关联。为了简化 ASP.NET 应用程序的配置过程,每个 ASP.NET 版本都附带了一个链接的 Aspnet_regiis.exe 版本。

注意:个 .NET Framework 版本都附带一个唯一的 Aspnet_regiis.exe 版本。由于该工具的每个版本只适用于与它关联的 .NET Framework 版本,所以一定要使用该工具的正确版本来配置 ASP.NET 应用程序。

Aspnet_regiis.exe 通常与 -s-sn 选项一起使用,以将 ASP.NET 应用程序重新映射到与该工具关联的 .NET Framework 版本。使用 -s 选项可更新指定的根路径及其所有子目录中的应用程序。如果不想更新子目录中的应用程序,请使用 -sn 选项。若要同时更新计算机上的所有现有 ASP.NET 应用程序的脚本映射,请使用 -r 选项。

注意: i>path 参数引用应用程序的根路径,而不是物理路径。例如,W3SVC/1/ROOT/SampleApp1

相反,通过使用 -k-kn 选项并指定应用程序的根路径,可以使用该工具从应用程序中移除任何 ASP.NET 版本的脚本映射。

注意:果指定的根路径是从父根路径继承它的脚本映射,则 -k-kn 选项无效。

该工具还可以用于安装和卸载链接的 ASP.NET 版本。使用 -i 选项可安装 ASP.NET 并更新所有现有 ASP.NET 应用程序的脚本映射。使用 -ir 选项可安装 ASP.NET 但不更新脚本映射。若要卸载与该工具关联的 ASP.NET 版本,请使用 -u 选项。如果想从计算机中卸载所有 ASP.NET 版本,请使用 -ua 选项。

可以使用 Aspnet_regiis.exe 查看有关 ASP.NET 的信息。若要列出所有已安装的 ASP.NET 版本的状态和安装路径,请使用 -lv 选项。如果想查看包含 ASP.NET 映射的所有 IIS 元数据库项的路径,请使用 -lk 选项。

可以使用 Aspnet_regiis.exe 安装和移除客户端脚本,如客户端验证。若要将与该工具关联的 ASP.NET 版本的客户端脚本安装到每个 IIS 站点目录的 aspnet_client 子目录中,请使用 -c 选项。若要只移除与该工具关联的 ASP.NET 版本的客户端脚本,请使用 -e 选项。若要移除所有已安装的 ASP.NET 版本的客户端脚本,请使用 -ea 选项。

有关 ASP.NET 中并行执行的更多信息,请参见 ASP.NET 中的并行 (Side-by-Side) 支持(http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconASPNETSide-by-SideOverview.asp)。有关脚本映射和应用程序根路径的更多信息,请参见 IIS 文档 (http://localhost/iishelp)。注意,必须安装了 IIS 之后,才能查看 IIS 文档。

示例

下面的命令将指向与 Aspnet_regiis.exe 关联的 ASP.NET 版本的脚本映射安装到 SampleApp1 应用程序及其所有子应用程序。

Aspnet_regiis -s W3SVC/1/ROOT/SampleApp1

下面的命令只更新 SampleApp1 应用程序的脚本映射,不影响子目录中的应用程序。

Aspnet_regiis -sn W3SVC/1/ROOT/SampleApp1

下面的命令安装与该工具关联的 ASP.NET 版本并更新所有现有 ASP.NET 应用程序的脚本映射。注意,只影响当前映射到早期 ASP.NET 版本的应用程序。

Aspnet_regiis -i

下面的命令安装与该工具关联的 ASP.NET 版本,但不更新现有 ASP.NET 应用程序的脚本映射。

Aspnet_regiis -ir

下面的命令显示计算机上安装的所有 ASP.NET 版本的状态和安装路径。

Aspnet_regiis -lv

详细信息请见相关的MSDN连接:
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cptools/html/cpgrfASPNETIISRegistrationToolAspnet_regiisexe.asp
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconASPNETSide-by-SideOverview.asp

添加评论