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 的权限。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。

  • -csp provider   指定要使用的容器提供程序。

  • -full   指定应该添加完全访问权限而不是默认的只读访问权限。

-pc container

在指定容器中创建 RSA 公钥/私钥对。此参数采用下面的可选修饰符:

  • -size keySize   指定密钥大小。默认值为 1024 字节。

  • -pku   将计算机上的默认密钥容器替换为用户指定的容器。

  • -exp   指定必须可以导出的私钥。

  • -csp provider   指定要使用的容器提供程序。

-pd section

对配置节进行解密。此参数采用下面的可选参数:

  • -app virtualPath   指定应该在包含路径的级别进行解密。

  • -location subPath   指定要解密的子目录。

  • -pkm   指定应该对 Machine.config 而非 Web.config 文件进行解密。

-pdf section webApplicationDirectory

对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。

-pe section

对指定的配置节进行加密。此参数采用下面的可选修饰符:

  • -prov provider   指定要使用的加密提供程序。

  • -app virtualPath    指定应该在包含路径的级别进行加密。

  • -location subPath   指定要加密的子目录。

  • -pkm   指定应该对 Machine.config 而非 Web.config 文件进行加密。

-pef section webApplicationDirectory

对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。

-pi container file

将 RSA 公钥/私钥对从指定的 XML file 导入指定的 container。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。

  • -exp   指定可以导出私钥。

  • -csp provider   指定要使用的容器提供程序。

-pr container account

移除指定的用户或组 account 对指定的项 container 的访问权限。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。

  • -csp provider   指定要使用的容器提供程序。

-px container file

将 RSA 公钥/私钥对从指定的容器导入指定的 XML 文件。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。

  • -csp provider   指定要使用的容器提供程序。

-pz container

删除指定的密钥容器。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。

备注

当在一台计算机上安装了多个 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

请参见

参考

.NET Framework 工具

其他资源

ASP.NET 中的并行 (Side-by-Side) 支持
并行 (Side-by-Side) 执行