859

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

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

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


我尝试过的事情:

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

这些似乎是解决此问题的常见解决方案,但我对它们没有任何成功。

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

4

37 回答 37

1459

Windows 8 专业版上:

%systemroot%\inetsrv\config

Windows 7 和 8.1 和 10上

%systemroot%\System32\inetsrv\config 

%systemroot%(通常在哪里C:\Windows

在 Windows 资源管理器中导航到上面的相应位置。您将被阻止访问,弹出窗口显示:

“您无权访问此文件夹 - 单击继续以永久访问此文件夹”

单击此文件夹的“继续”,并在下方显示“导出”文件夹。我将快捷方式改回“以我身份运行”(域和本地管理员的成员),并且能够打开和部署解决方案。

于 2013-07-04T01:58:15.400 回答
254

我认为您没有以管理员权限运行 Visual Studio。看那个:

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

去引用

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

于 2012-10-12T13:19:42.743 回答
57

我想我们在工作中遇到了类似的问题。对我们来说,解决方案是进入控制面板 -> 程序和功能 -> 打开或关闭 Windows 功能...在其中,我们必须选择 Internet 信息服务 -> Web 管理工具 -> IIS 6 管理兼容性 -> IIS 元数据库和 IIS 6 配置兼容性。 显示 IIS 元数据库选项的 Windows 功能对话框

试试看,如果有帮助,请告诉我!

注意:我们在 Windows 7 上使用 Visual Studio 2005 和 2010 运行 IIS 7.5,并使用超级老式的 WebServices (.asmx)...

于 2012-10-12T13:39:56.403 回答
36

我通过将 IIS AppPool 身份权限授予%systemroot%\inetsrv\config

于 2013-05-05T22:06:13.267 回答
32

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

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

并将 USEIIS 设置为 false

<UseIIS>False</UseIIS>

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

于 2013-08-06T05:57:16.407 回答
19

我有两种不同类型的问题导致此错误,并认为我会分享...

1. The directory was on an network share and due to UAC restrictions, was 
   unable to be accessed -- even when running as an admin.
2. The directory was on a drive that didn't exist...

这两者都源于 MS 的一个不幸 (imo) 选择将内容放在 Documents 或 My Document 目录中,并结合了非常糟糕的错误消息。在上述两种情况下,根本问题是IISExpress 配置文件进入了我的文档,它要么不存在,要么无法访问。

于 2013-10-04T06:38:54.550 回答
15

感谢所有回答的人。由于关闭了很长时间,我无法提供太多反馈,但我最终解决了我的问题。我尝试了许多其他解决方案,但它们并没有解决我的问题,但我确信当根本原因不同时它们会有所帮助。

我的解决方案

我通过关闭 Windows 7 中的 IIS 和 .Net Framework 功能然后重新打开它们解决了这个问题。似乎这种重新安装是解决我的问题的原因。我仍然不知道是什么导致了问题,但我团队中的至少一位其他开发人员也遇到了同样的问题。

于 2013-02-05T19:30:23.007 回答
14

导航到文件夹:%systemroot%\System32\inetsrv\config显示安全对话框。单击继续,这可能会解决问题。这适用于两台独立的 Win 10/VS 2017/IIS 机器。

于 2018-01-20T08:17:05.360 回答
13

在 Windows 81 上,从管理员命令提示符处,使用:

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

然后回到VS,右键点击失败的项目,选择Reload。

归功于:IIS7 权限概述 - ApplicationPoolIdentity

于 2014-09-09T15:12:33.003 回答
12

我遇到了这个问题 - 症状是一样的,但我遇到的问题是我将“我的文档”文件夹设置在网络共享上,并且无法访问该共享。

根本问题是位于 %USERPROFILE%\Documents 的 IIS 配置文件不可访问。一旦我更改了“我的文档”文件夹位置(我修改了 reg 值),它又开始工作了。

我知道这可能不是您可能遇到的常见情况,但我已将其发布在这里,因为它给出了相同的症状。

于 2015-02-15T22:15:56.270 回答
7

我今天遇到了这个问题,并通过从项目文件中删除 IISUrl 解决了这个问题:

  1. 右键项目
  2. 单击编辑
  3. 删除以下行:

     <IISUrl>http://localhost:xxxxx </IISUrl>
    
  4. 重新加载项目

  5. 现在通过右键单击 Project > Properties > Web 并选择 Use Local IIS Web Server(取消选中 Use IIS Express)并单击 Create Virtual Directory 按钮来添加一个新的 IIS 虚拟目录。
于 2016-03-16T12:06:19.377 回答
7

你可能会遇到这个问题并且和我有同样的问题。我之前“解决”了它,然后停电和计算机崩溃,不知道为什么注册表设置恢复,但它是我问题的根源

  1. 我尝试了所有以管理员身份运行
  2. 所有 IIS / IIS express 重新安装。
  3. 各种“黑客”

归结为不得不再次修复注册表。

  1. 甚至无法以管理员身份打开 regedit(需要访问注册表,因为问题不在于 gpedit.msc 管理模板)

  2. 桌面上的 UnHookExec.inf

只需保存 UnHookExec.inf 并通过右键单击并选择安装来安装它。安装文件不会显示任何弹出窗口或通知框。 http://www.tweakandtrick.com/2011/04/enable-regedit-registry-editor.html

  1. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal指向不存在的文件共享。将其更改为本地路径为我解决了这个问题。– Pasi Savolainen 2014 年 7 月 14 日在 8:41

(从更改 \\cs2data\home\stickelt\my documentsc:\dev

现在一切都很好,Visual Studio 打开了包含 15 个项目的解决方案并连接到 IIS,并且不会抱怨无法访问 iis 元数据

我以前从来没有遇到过这个问题,因为目前的工作没有人遇到这个问题(很多人已经在这里很长时间了,有些人克隆了其他“工作”的机器,很多人在另一个域上等等。)

于 2016-07-01T20:11:45.233 回答
6

我今天刚遇到这个问题,我发现我没有以“以管理员身份运行”打开 VS。完成此操作后,我能够发布服务。

于 2014-01-17T14:48:42.103 回答
4

如果您有管理员权限,请右键单击 Visual Studio 图标 > 属性,然后高级,“以管理员身份运行”检查。您可以直接以管理员身份运行 visaul studio。这样,正式而基本。

于 2015-05-20T08:07:05.770 回答
3

更改此密钥对我有用:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal

该位置不存在。

于 2015-04-17T16:56:29.410 回答
3

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

<UseIIS>True</UseIIS>

先说“假”。

  • 打开解决方案并确保可以加载项目。
  • 关闭解决方案和该 Visual Studio 实例
  • 再次将值更改为“真”
  • 打开解决方案。这一次,我没有收到任何错误/警告。当我的项目映射到 IIS 网站时,我也可以毫无问题地使用 Ctrl+F5 或 F5 运行。
于 2014-01-22T08:09:45.733 回答
3

转到项目的根目录并找到以下文件:

YourProjectName.csproj.user - 在其中,确保UseIISExpress设置为false

<UseIISExpress>false</UseIISExpress>


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

YourProjectName.csproj - 在主项目文件中,确保 UseIISUseIISExpress都设置为false

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


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

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

于 2017-06-02T12:53:15.117 回答
2

您还可以尝试一件事:

  • 检查您是否有待处理的 Windows 更新。
  • 如果这样做,请在尝试其他任何操作之前重新启动。

我往往从不关闭我的机器,所以我有很多人在等待重启。这解决了它。

于 2014-08-15T08:56:58.490 回答
2

我也有类似的问题。我的解决方案是对“以管理员身份运行”答案的扩展,我希望有人会觉得它有用。

我正在运行 VS2012,几乎每次我都必须右键单击,以管理员身份运行。我对此感到厌倦,所以我进入快捷方式的属性,单击高级,然后单击“以管理员身份运行”选项。现在,每当我从该快捷方式打开 VS2012 时,它总是以管理员身份运行。

从那个快捷方式开始很重要。我继续分支我的项目,并将分支下载到新的本地文件夹。然后,当我从快捷方式打开它时,我没有问题。但是如果我直接进入该文件夹,并在没有快捷方式的情况下在本地运行项目,它没有以管理员身份运行,我得到了这个错误。

一旦我像往常一样首先打开 VS2012,然后使用 File/Open/Project 它再次工作没问题。(因为我以管理员身份运行)。但是当我使用 Windows 文件管理器打开解决方案时,我没有以管理员身份运行。

其他建议似乎有些极端,但这很简单,所以我倾向于先尝试一下。

希望这会有所帮助。

于 2013-02-20T11:51:10.120 回答
2

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

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

于 2013-07-16T21:53:01.397 回答
2

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

  • 配置 VS 以管理员身份运行
  • 通过添加/删除程序、Windows 功能卸载 IIS
  • 重启
  • 运行 WinRAR 或类似管理员和存档的东西C:\windows\system32\inetsrv\
  • 以管理员身份运行 cmd 并rmdir /s c:\windows\system32\inetsrv\完全删除上次安装的所有痕迹。将提升的 cmd 提示打开以供以后使用。
  • 重新安装具有 IIS 6 Metabase 兼容性的 IIS(怀疑这是必要的)
  • 保留默认 AppPool 和默认网站原样(我之前已将两者都删除)
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ga MYDOMAIN\scottt732
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

此外,由于我的 Documents 文件夹位于共享驱动器上,因此我遇到了 IIS Express 问题。我不使用/不喜欢 IIS Express,但 Visual Studio 抱怨它。

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

在放弃 3 次并花费大约 6 小时后,我可以在 Visual Studio(2015 更新 2)中打开 Web 项目。

于 2016-04-22T15:54:10.013 回答
1

打开 Visual Studio 命令提示符并键入以下命令并运行

aspnet_regiis -ga machinename\ASPNET

运行上述命令后重置IIS并测试解决您的问题的应用程序。

如果上述命令不能解决您的问题,请尝试在以下命令中运行visual studio command prompt:-

aspnet_regiis -i

或者,我们也可以从 Windows 命令提示符运行上述命令

转到开始菜单并打开运行并输入并单击OK

%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe –I

之后重置 IIS 并测试解决您的问题的应用程序

于 2014-08-08T09:54:06.833 回答
1
  1. 创建“devenv.exe”的快捷方式
  2. 选择快捷方式的“以管理员身份运行”选项
  3. 双击快捷方式并重新打开您的项目
于 2013-04-24T12:36:16.910 回答
1

我今天也遇到了同样的问题。我发现它很烦人。虽然我已经从同一个 IIS 开发了另外两个网站,但仍然无法创建新网站。奇怪,但我做到了。

  • 从 IIS 中删除站点
  • 创建新站点,将其命名为“new_site”
  • 选择站点名称本身以外的应用程序池。所以它不会破坏默认设置。
  • 如果您从同一台机器上运行它,请保持 IP“未分配”
  • 给它一些未使用的端口
  • 通过右键单击 VS 可执行快捷方式以“以管理员身份运行”运行 Visual Studio。
  • 你完成了!

除了我所说的以外,您不需要关闭/重新安装任何东西,因为它可以工作。

让我知道是否有人像我一样遇到同样的问题并以同样的方式解决。我认为这不是问题,而是在 Visual Studio 拒绝打开的 localhost 上创建网站的错误方式。

我希望这会对新手有所帮助。

于 2013-03-26T19:04:33.173 回答
1

从这个链接添加功能之后我遇到了同样的问题,之后我按照这篇文章解决了这个问题。

于 2017-01-19T16:03:58.723 回答
1

在 Visual Studio 2015 中:我将 .csproj 文件中的 UseIIS 更改为 false,它对我有用。

<UseIIS>False</UseIIS>
于 2019-09-11T09:36:17.037 回答
1

我修复了 Visual Studio 2015 来解决这个问题。修复花了很长时间,但它解决了问题,而上面的大部分内容都没有。我正在运行 Win 7 企业版。

于 2017-03-17T21:59:48.573 回答
0

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

就我而言,问题的根源实际上是 IISExpress。在控制面板的程序和功能中右键单击 IIS Express,然后选择修复,不到两分钟就解决了这个问题。

于 2014-02-25T19:09:04.643 回答
0

我正在使用 Win 8 Pro 和 VS 2013。在尝试了此页面中的所有内容之后......我只是重新安装了 IIS Express 8,现在一切正常(即使没有以管理员身份运行)。

我的结论是,这是一个相当普遍的错误,并且有多个根本原因。

于 2014-08-04T16:25:20.887 回答
0

在我的消息中,除了抱怨“无法访问 IIS 元数据库”之外,它还提到了 can't access "<IISUrl>http://localhost:6416/</IISUrl>"。右键单击卸载项目,单击编辑,找到该行"<IISUrl>http://localhost:6416/</IISUrl>",将其注释掉。重新加载,它应该工作。这与管理员无权访问该地址有关。

于 2013-12-04T20:58:20.307 回答
0

您可以通过取消选中 Windows 功能列表中的 IIS 工具来解决此问题。然后,修复您的 Visual Studio 2013 安装并确保选中 Web Developer。它将安装 IIS 8,VS 可以很好地工作。

于 2014-08-16T08:56:43.860 回答
0

我有同样的问题。对我来说,我使用的文档与以前的 Windows 安装相同。只需从我的文档中删除 IISExpress 文件夹就可以了。

于 2015-05-07T07:19:59.517 回答
0

我在 Windows 10 Professional 64 位机器上体验过这个,这里发布的其他答案都没有帮助。它在我经历蓝屏死机后开始发生,我发现 UAC 已重新启动。单独以管理员身份运行 Visual Studio 不是解决方案,因为我的源代码控制位于网络驱动器上,Visual Studio 无法通过 UAC 访问。

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

于 2016-03-03T10:08:22.953 回答
0

运行命令:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ga %username%
c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
于 2018-01-31T12:22:31.910 回答
0

就我而言,唯一对我有帮助的是重新安装(或更容易修复)IIS 10.0 Express

于 2018-01-16T08:27:53.907 回答
0

IIS Express 用户 - 在网络共享上使用我的文档

如果您的 IIS Expressapplication.config位于网络驱动器上,请确保该驱动器已映射并连接到“我的电脑”中。

我遇到了这个问题,当我在我的电脑中重新映射网络驱动器时,问题得到了解决。

于 2018-07-03T09:58:57.723 回答
-1

创建一个新网站,出错后转到您创建项目的文件夹,在 txt 应用程序中打开 .csproj 文件,找到此标签“ <UseIIS>”并将“false”更改为“true”,在下面的行中找到标签“ <IISUrl>”然后把iis url(在iis中查找url),你的标签必须是这样的:

<WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>0</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost/yourIISAppAlias
      </IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
    </WebProjectProperties>
于 2015-03-09T06:18:56.713 回答