ASP.NET IIS 注册工具 (Aspnet_regiis.exe)
在一台计算机上并行执行多个 .NET Framework 版本时,映射到 ASP.NET 应用程序的 ASP.NET ISAPI 版本决定了该应用程序所使用的公共语言运行库 (CLR) 版本。使用 ASP.NET IIS 注册工具 (Aspnet_regiis.exe),管理员或安装程序可以方便地更新 ASP.NET 应用程序的脚本映射,使其指向与该工具关联的 ASP.NET ISAPI 版本。该工具还可以用于显示所有已安装的 ASP.NET 版本的状态,注册与该工具耦合的 ASP.NET 版本,创建客户端脚本目录,以及执行其他配置操作。
备注
.NET Framework 附带了两个 IIS 注册工具;一个用于标准系统,另一个用于 64 位系统。用于 64 位系统的工具位于 Windows 文件夹下 Microsoft.NET 目录的 Framework64 目录中;例如,C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727 将包含该 IIS 注册工具。
aspnet_regiis [options]
选项
选项 | 说明 |
---|---|
-c |
将 ASP.NET 的客户端脚本(如客户端验证脚本)安装到每个 Internet 信息服务 (IIS) 站点目录的 aspnet_client 子目录中。 只安装与 Aspnet_regiis.exe 关联的 ASP.NET 版本的客户端脚本。 |
-disable |
在 IIS 安全控制台中禁用 ASP.NET。 此选项只能与 -i、-ir 或 -r 选项结合使用。此选项不能在 IIS 6.0 之前的 IIS 版本中使用。 |
-e |
从每个 IIS 站点目录的 aspnet_client 子目录中移除 ASP.NET 的客户端脚本。 只移除与 Aspnet_regiis.exe 关联的 ASP.NET 版本的客户端脚本。 |
-ea |
从每个 IIS 站点目录的 aspnet_client 子目录中移除所有 ASP.NET 版本的客户端脚本。 |
-enable |
在 IIS 安全控制台中启用 ASP.NET。 此选项只能与 -i、-ir 或 -r 选项结合使用。此选项不能在 IIS 6.0 之前或 ASP.NET 2.0 版之前的版本中使用。 |
-ga user |
向指定用户授予 ASP.NET. 使用的 IIS 元数据库和其他目录的访问权限。 此选项不能在 ASP.NET 2.0 之前的版本中使用。 |
-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 版本的状态和安装路径。 |
-norestart |
禁止在安装或更新 ASP.NET 脚本映射后重新启动万维网发布服务。如果不使用此选项,将回收所有应用程序池。 如果将手动重新启动 IIS 辅助进程,则将此选项与 -i 或 -r 选项一起使用。 |
-r |
更新 IIS 元数据库中及其下面的所有脚本映射,使其指向与 Aspnet_regiis.exe 关联的 ASP.NET ISAPI 版本。 无论当前版本如何,都会更新现有的所有脚本映射,使其指向与 ASP.NET IIS 注册工具关联的 ASP.NET ISAPI 版本。 |
-s path |
将脚本映射(该脚本映射指向与 Aspnet_regiis.exe 关联的 ASP.NET ISAPI 版本)安装到指定应用程序根路径及其子目录下的所有 ASP.NET 应用程序中。更新指定的路径中及其下面使用早期 ASP.NET ISAPI 版本的所有现有脚本映射。 |
-sn path |
将脚本映射(该脚本映射指向与该工具关联的 ASP.NET ISAPI 版本)安装到指定应用程序根路径下的 ASP.NET 应用程序中。更新指定路径中使用早期 ASP.NET ISAPI 版本的所有现有脚本映射。 此选项不影响 path 的子目录中的应用程序。 |
-u |
从计算机中卸载与 ASP.NET IIS 注册工具关联的 ASP.NET 版本。此 ASP.NET ISAPI 版本的现有脚本映射自动重新映射到其余已安装的 ASP.NET ISAPI 的最新版本。 |
-ua |
从计算机中卸载所有 ASP.NET 版本。 |
-? |
显示 ASP.NET IIS 注册工具的命令语法和选项。 |
配置选项
选项 | 说明 |
---|---|
-config+ |
允许对计算机上的 ASP.NET 配置进行远程访问。 |
-config- |
禁止对计算机上的 ASP.NET 配置进行远程访问。 |
-pa container account |
为指定用户或组 account 授予访问指定项 container 的权限。此参数采用下面的可选修饰符:
|
-pc container |
在指定容器中创建 RSA 公钥/私钥对。此参数采用下面的可选修饰符:
|
-pd section |
对配置节进行解密。此参数采用下面的可选参数:
|
-pdf section webApplicationDirectory |
对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。 |
-pe section |
对指定的配置节进行加密。此参数采用下面的可选修饰符:
|
-pef section webApplicationDirectory |
对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。 |
-pi container file |
将 RSA 公钥/私钥对从指定的 XML file 导入指定的 container。此参数采用下面的可选修饰符:
|
-pr container account |
移除指定的用户或组 account 对指定的项 container 的访问权限。此参数采用下面的可选修饰符:
|
-px container file |
将 RSA 公钥/私钥对从指定的容器导入指定的 XML 文件。此参数采用下面的可选修饰符:
|
-pz container |
删除指定的密钥容器。此参数采用下面的可选修饰符:
|
备注
当在一台计算机上安装了多个 ASP.NET 版本时,就说 ASP.NET 是并行运行的。在此安装中,Internet 信息服务 (IIS) 需要知道哪个 ASP.NET ISAPI (aspnet_isapi.dll) 版本应该处理 ASP.NET 应用程序中的页。与 ASP.NET 应用程序关联的 ASP.NET ISAPI 版本决定了该应用程序使用的 CLR 版本。在 IIS 中,ASP.NET 应用程序通过脚本映射与 ASP.NET ISAPI 版本关联。为了简化 ASP.NET 应用程序的配置过程,每个 ASP.NET 版本都附带了一个链接的 Aspnet_regiis.exe 版本。
备注
每个 .NET Framework 版本都附带一个唯一的 Aspnet_regiis.exe 版本。因为该工具的每个版本只应用于与它关联的 .NET Framework 版本,所以务必使用该工具的正确版本对 ASP.NET 应用程序进行配置。
ASP.NET IIS 注册工具通常与 -s 或 -sn 选项结合使用,以便将 ASP.NET 应用程序重新映射到与该应用程序关联的 .NET Framework 版本。使用 -s 选项,可以更新指定根路径及其所有子目录中的应用程序。如果不需要更新子目录中的应用程序,请使用 -sn 选项。若要同时更新计算机上现有的全部 ASP.NET 应用程序的脚本映射,请使用 -r 选项。
备注
path 参数引用的是应用程序的根路径,而不是物理路径。例如 W3SVC/1/ROOT/SampleApp1
。
相反,通过使用 -k 或 -kn 选项并指定应用程序的根路径,可以使用 ASP.NET IIS 注册工具从该应用程序中移除所有 ASP.NET 版本的脚本映射。如果指定的根路径从父根路径继承它的脚本映射,-k 和 -kn 选项将无效。
-norestart 选项可阻止在安装或更新 ASP.NET 脚本映射后重新启动万维网发布服务。如果您不希望回收所有应用程序池,则应使用此选项。如果正在不同的应用程序池中运行 IIS 中的多个网站,并且不希望将它们全部重新启动,则应使用此选项。
请注意,使用 Internet 信息服务控制台应用程序上的 ASP.NET 选项卡所做的任何更改也会导致回收所有应用程序池。如果要更改应用程序所使用的 ASP.NET 版本而不会导致回收所有应用程序池,请运行下面的两个命令以更改版本。
aspnet_regiis -s w3svc/<instance>/root -norestart
iisapp /a <app pool> /r
ASP.NET IIS 注册工具还可以用于安装和卸载 ASP.NET 的链接版本。使用 -i 选项,可以安装 ASP.NET,还可以更新所有现有 ASP.NET 应用程序的脚本映射。使用 -ir 选项,可以安装 ASP.NET,但不更新脚本映射。若要卸载与该工具关联的 ASP.NET 版本,请使用 -u 选项。如果要从计算机中卸载所有 ASP.NET 版本,请使用 -ua 选项。
另外,可以使用 ASP.NET IIS 注册工具查看有关 ASP.NET 的信息。若要列出计算机上安装的所有 ASP.NET 版本的状态和安装路径,请使用 -lv 选项。如果要查看映射 ASP.NET 的所有 IIS 元数据库项的路径,请使用 -lk 选项。
使用 Aspnet_regiis.exe,可以安装和移除客户端脚本,如客户端验证。若要将与该工具关联的 ASP.NET 版本的客户端脚本安装到每个 IIS 站点目录的 Aspnet_client 子目录中,请使用 -c 选项。若要只移除与该工具关联的 ASP.NET 版本的客户端脚本,请使用 -e 选项。若要移除已安装的所有 ASP.NET 版本的客户端脚本,请使用 -ea 选项。
在使用模拟时,如果模拟帐户不具有对 IIS 元数据的读访问权限,则当您试图访问 DirectoryEntry 时将引发 COMException 异常,并显示消息“访问被拒绝”。当应用程序的 Code 子目录存在于应用程序的根目录中时,可能发生这种情况。当将应用程序映射到 UNC 共享并且 UNC 帐户不具有对元数据的读访问权限时,也可能发生此错误。在这两种情况下,对模拟或 UNC 帐户使用“**-ga **用户”选项运行 ASP.NET IIS 注册工具可修复此问题。
有关在 ASP.NET 中并行执行的更多信息,请参见 ASP.NET 中的并行 (Side-by-Side) 支持。有关脚本映射和应用程序根路径的更多信息,请参见位于 Microsoft 网站上的 IIS 文档。
示例
下面的命令将脚本映射(这些脚本映射指向与该工具关联的 ASP.NET 版本)安装到 SampleApp1 应用程序及其所有子应用程序中。
aspnet_regiis -s W3SVC/1/ROOT/SampleApp1
下面的命令只更新 SampleApp1 应用程序的脚本映射,不影响子目录中的应用程序。
aspnet_regiis -sn W3SVC/1/ROOT/SampleApp1
下面的命令安装与 ASP.NET IIS 注册工具关联的 ASP.NET 版本,并更新所有现有 ASP.NET 应用程序的脚本映射。注意,只影响当前映射到早期 ASP.NET 版本的应用程序。
aspnet_regiis -i
下面的命令安装与该工具关联的 ASP.NET 版本,但不更新现有 ASP.NET 应用程序的脚本映射。
aspnet_regiis -ir
下面的命令显示计算机上安装的所有 ASP.NET 版本的状态和安装路径。
aspnet_regiis -lv