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

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

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


我尝试过的事情:

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

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

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


当前回答

我在一台Windows 10 Professional 64位计算机上体验了这一点,这里发布的其他答案都没有帮助。这是在我经历了死亡的蓝屏之后开始的,我发现UAC已经重新打开了自己。单独以管理员身份运行Visual Studio不是解决方案,因为我的源代码控制位于网络驱动器上,而在UAC打开的情况下,Visual Studio无法访问。

通过GPEDIT关闭UAC解决了问题。

其他回答

我尝试了以上所有方法。这归功于上述所有回应。在尝试了所有建议之后,我只是按照对我来说有意义的顺序组合了这些建议。请注意,我的Documents文件夹位于共享驱动器上。subst/IISExpress的东西不适用,除非你在同一条船上。

配置VS以管理员身份运行通过添加/删除程序、Windows功能卸载IIS重新启动运行WinRAR或类似于admin的东西并存档C:\windows\system32\inetsrv\以admin和rmdir/s c:\windows\system32\inetsrv\的身份运行cmd,以完全删除上次安装的所有痕迹。稍后保持提升的cmd提示打开。重新安装具有IIS 6元数据库兼容性的IIS(怀疑这是必要的)保持默认AppPool和默认网站不变(我以前删除了这两个)运行C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe-ga MYDOMAIN\scott732已运行C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe-i

此外,因为我的Documents文件夹位于共享驱动器上,所以我遇到了IIS Express问题。我不使用/喜欢IIS Express,但Visual Studio对此表示不满。

在提升的cmd提示符下,运行subst U:c:\Temp。创建C:\Temp\Documents\并从U盘复制IISExpress文件夹。使用C:\Temp\Documents\IISExpress在HKCU\Software\Microsoft\IISExpress中创建了CustomUserHome密钥这使我能够让VisualStudio打开我的web项目并编辑财产。我调整了项目以将web服务器设置存储在用户文件中,并将其调整为使用自定义URL(不确定这是否必要)每次重新启动时,我可能/可能不必运行subst命令。别在意。

在认输3次,花了大约6个小时后,我可以在Visual Studio(2015年更新2)中打开web项目。

更改此密钥对我有效:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\用户外壳文件夹\个人

位置不存在。

我认为您没有使用管理员权限运行visual studio。看看:

http://bloggingabout.net/blogs/rick/archive/2012/10/04/unable-to-access-the-iis-metabase.aspx

引用

解决方案很简单:使用“运行方式”启动Visual Studio管理员”。您可以通过右键单击快捷方式并选择“以管理员身份运行”。

我通过向%systemroot%\inetsrv\config授予IIS AppPool标识权限解决了此问题

如果您正在处理的项目不需要使用IIS,则打开出现此错误的项目的解决方法是,只需右键单击卸载的项目,然后单击“编辑”,搜索:

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>

并将USEIIS设置为false

<UseIIS>False</UseIIS>

保存更改后,通过右键单击重新加载项目。