解决"Failed to access IIS metabase"

原因:IIS没有注册

解决办法:

方法一:

在CMD中进入目录C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,运行aspnet_regiis

1、aspnet_regiis -ga administrator(administrator为当前用户)

2、aspnet_regiis -i (注册IIS)

3、iisreset /noforce (重启IIS)


操作详细:

C:\Documents and Settings\Administrator>cd c:\\windows\\microsoft.net\\framework\\v2.0.50727

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -ga administrator
Start granting administrator access to the IIS metabase and other directories us
ed by ASP.NET.
Finished granting administrator access to the IIS metabase and other directories
used by ASP.NET.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -lv
2.0.50727.0     Valid           C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\as
pnet_isapi.dll

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -i
Start installing ASP.NET (2.0.50727).
..............
Finished installing ASP.NET (2.0.50727).

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -lv
2.0.50727.0     Valid (Root)    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\as
pnet_isapi.dll

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>iisreset /noforce

Attempting stop...
Internet services successfully stopped
Attempting start...
Internet services successfully restarted

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>

 方案二:
可以建立一个的bat文件.以下为代码:

@echo off
pause
aspnet_regiis -ga administrator
aspnet_regiis -lv
aspnet_regiis -i
aspnet_regiis -lv
iisreset /noforce
@echo off
pause


将以上文本保存成bat文件.
复制到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727  后运行

问题详情:

[HostingEnvironmentException: Failed to access IIS metabase.]
   System.Web.Configuration.MetabaseServerConfig.MapPathCaching(String siteID, VirtualPath path) +637
   System.Web.Configuration.MetabaseServerConfig.System.Web.Configuration.IConfigMapPath2.MapPath(String siteID, VirtualPath vpath) +9
   System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull) +174
   System.Web.Hosting.HostingEnvironment.MapPathInternal(VirtualPath virtualPath, Boolean permitNull) +51
   System.Web.CachedPathData.GetConfigPathData(String configPath) +341
   System.Web.CachedPathData.GetConfigPathData(String configPath) +234
   System.Web.CachedPathData.GetApplicationPathData() +38
   System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath, Boolean permitPathsOutsideApp) +8802175
   System.Web.Configuration.RuntimeConfig.GetLKGRuntimeConfig(VirtualPath path) +117

原文地址:https://www.cnblogs.com/Golf9527/p/1654186.html