安装Visual Studio 2012并打开解决方案后,我收到一系列错误,格式如下:

Web应用程序项目Foo配置为使用IIS。无法访问IIS元数据库。您没有足够的权限访问计算机上的IIS网站。

我为我们的每个web应用程序都得到了这个。


我尝试过的事情:

以管理员身份运行Visual Studio运行aspnet_regiis.exe-ga MyUserName运行aspnet_regiis.exe-i

这些似乎是解决这个问题的常见方法,但我没有成功。

还有什么我可以尝试做的吗?


当前回答

这似乎是“所有错误都会导致此消息”类型的错误之一。

我的是,应用程序池刚刚关闭。我重新打开了它,一切都正常。

其他回答

我也有类似的问题。Visual Studio不会加载任何web项目,并显示错误:创建虚拟目录<myproj:myport>失败。无法访问IIS元数据库。

在我的案例中,问题的根源实际上是IISExpress。右键单击控制面板中的“程序和功能”中的“IIS Express”,然后选择“修复”,在不到两分钟的时间内修复了该问题。

除了@nologo的回答,我还必须使用IIS。所以我改变了

<UseIIS>True</UseIIS>

首先设置为“False”。

打开解决方案并确保可以加载项目。关闭解决方案和Visual Studio实例再次将值更改为“True”打开解决方案。这次,我没有收到任何错误/警告。当我的项目被映射到IIS网站时,我也可以使用Ctrl+F5或F5运行而没有任何问题。

在windows 81上,从admin命令提示符,使用:

icacls "C:\Windows\System32\inetsrv\config" /t /grant "IIS AppPool\DefaultAppPool":(R)

然后返回VS,右键单击失败的项目,选择重新加载。

归功于:IIS7权限概述-ApplicationPoolIdentity

在我的情况下,唯一帮助我的是重新安装(或更容易修复)IIS 10.0 Express

转到项目的根目录,找到以下文件:YourProjectName.csproject.user-在其中,确保UseIISExpress设置为false:

<UseIISExpress>false</UseIISExpress>

如果仅此项不起作用,请尝试以下操作,然后重试:

YourProjectName.csproj-在主项目文件中,确保UseIIS和UseIISExpress都设置为false:

<UseIIS>True</UseIIS>
<UseIISExpress>false</UseIISExpress>

更改这些后,我能够再次加载项目。

注意:确保您以管理员身份运行VS,如其他答案中所述。