.NET2.0 System.Web.Hosting.HostingEnvironmentException的解决方法

今天在向本地工程配置一个WebService的时候发生了这个错误:  System.Web.Hosting.HostingEnvironmentException: IIS メタベースにアクセスできませんでした。 第一次做.NET项目,对IIS和.NET2.0一头雾,百思不得其解。 一位远在日本的师兄最终帮我解决了这个问题: 命令行运行

C:/windows/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i

原因 : IIS和VS2005安装顺序搞反了,导致VS没有成功注册。重新注册问题解决。 不过据说VS2005自身带了IIS,不需要特别安装IIS组件,为了不引起不必要的麻烦,决定等到项目闲时再做尝试。 PS:网上找了一份Aspnet_regiis的说明,收藏一下

当在一台计算机上并行执行多个 .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 选项。

注意   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) 支持。有关脚本映射和应用程序根路径的更多信息,请参见 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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值