5

我正在尝试在 Windows 7 机器上的 Visual Studio 2013 中打开一个 asp.net MVC 项目。我收到有关无法访问 IIS 元数据库的错误。我已经尝试了我可以在网上找到的所有建议,但无法让它发挥作用。我们公司的主要变化是我们的本地文件服务器出现故障。这包含所有我的文档。我猜那里有我需要的东西,但我不知道那个文件是什么或如何恢复它。我无法对网站进行任何更改,而且我的老板一直在逼迫我完成更改,所以我非常绝望。有人可以给我一个解决方案吗?

如果我使用 Visual Studio 解决方案文件打开站点,我会收到一条消息,指出项目无法加载。如果我右键单击它并选择重新加载,我会收到一条消息,“创建虚拟目录http://localhost:1436/失败并出现错误:无法访问 IIS 元数据库。您没有足够的权限访问您机器上的 IIS 网站。”

如果我将站点作为网站打开(不使用解决方案或项目文件),我会收到错误“配置 IIS Express 失败并出现以下错误:无法访问 IIS 元数据库。您没有足够的权限访问 IIS Web您机器上的站点。”

这是我尝试过的所有内容的列表。这似乎是人们的大部分想法,但我希望你能想出另一种解决方案。

去了 %systemroot%\System32\inetsrv\config

卸载/重新安装 IIS

  • 控制面板、程序和功能、打开或关闭 Windows 功能
  • 未经检查的 Internet 信息服务
  • 点击申请
  • 重新启动
  • 控制面板、程序和功能、打开或关闭 Windows 功能
  • 检查互联网信息服务
  • 点击申请
  • 重新启动
  • 错误 - 无法访问 IIS 元数据库

修复了 Visual Studio 13

  • 控制面板、程序和功能、Microsoft Visual Studio Professional 2023
  • 点击修复
  • 同事推荐的

更改 .csproj 文件

  • 使用已设置为 true 的 IIS 标记
    • <UseIISExpress>false</UseIISExpress>
    • <UseIIS>False</UseIIS>
  • IIS URL 标记中已经没有任何内容
    • <IISUrl></IISUrl>
  • 错误 - 无法访问 IIS 元数据库

以管理员身份运行 Visual Studio

删除默认网站并重新创建

修复 IIS

尝试让默认应用程序池访问 inetsrv 文件夹

  • icacls "C:\Windows\System32\inetsrv\config" /t /grant "IIS AppPool\DefaultAppPool":(R)
  • 收到错误提示“访问被拒绝”。根据http://forums.iis.net/t/1189996.aspx,这并不少见。
  • 检查我是否具有管理员访问权限(我有)并拥有该文件夹的所有权,但一直收到该错误。

检查 HKEY_LOCAL_MACHINE 中的注册表项

4

1 回答 1

6

找到了解决我的问题的方法。

我找到了检查 HKEY_LOCAL_MACHINE 中的注册表的建议,以确保这些值没有指向服务器或其他不存在的位置。我认为这是因为我知道我失去了与服务器的连接。但是当我检查那里的值时,它们已经指向我的 C 驱动器。这是我找到此建议的链接:Visual Studio 2013。您没有足够的权限访问您机器上的 IIS 网站

进行了更多挖掘,最后在 HKEY_CURRENT_USER 中找到了一个指向我们崩溃的服务器的值。我将值更改为指向 C 驱动器,Visual Studio 打开没有任何问题!

这是我采取的步骤:

  • 打开的注册表(CTRL-R、regedit、OK)
  • 导航到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\
  • 发现 Personal 键指向“\OurServer\RedirectedFolders\MyName\MyDocuments”
  • 选择 Personal 键,右键单击它,然后选择 Modify
  • 输入了指向我的用户文档文件的位置:“%USERPROFILE%\Documents\”
  • 单击确定并关闭注册表编辑器
  • 当我打开 Visual Studio 并打开我的解决方案时,它加载时没有出现“无法访问 IIS 元数据库”错误。
于 2016-04-08T12:40:42.707 回答