wake-up-neo.com

错误 - 无法访问 IIS 元数据库

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

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

我为每个Web应用程序都得到了这个。我尝试过的事情:

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

这些似乎是这个问题的常见解决方案,但我没有取得任何成功。还有什么我可以尝试做的吗?

808
jjathman

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

我的解决方案

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

12
jjathman

Windows 8 Pro

%systemroot%\inetsrv\config

Windows 7和8.1和10

%systemroot%\System32\inetsrv\config 

%systemroot%通常是C:\Windows

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

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

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

1417
Gordon Kenyon

我认为你没有运行具有管理员权限的visual studio。看那个:

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

报价

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

244
Felipe Ardila

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

尝试一下,让我知道它是否有帮助!

注意:我们在Windows 7上使用Visual Studio 2005和2010运行IIS 7.5并使用超老派WebServices(.asmx)进行操作...

49
Jeff Bridgman

我通过向%systemroot%\inetsrv\config授予IIS AppPool身份权限来解决此问题

33
hopkinsrush

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

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

并将USEIIS设置为false

<UseIIS>False</UseIIS>

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

27
nologo

我有两个单独的问题类型导致这个错误,并认为我分享...

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配置文件 进入我的文档,它要么不存在,要么无法访问。

18
jmoreno

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

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

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

12
sargeMonkey

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

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

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

感谢: IIS7权限概述 - ApplicationPoolIdentity

12
lnaie

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

10
Jesse Mwangi

您可能遇到此问题并遇到与我相同的问题。我之前“解决”了它,然后断电和计算机崩溃,不知道为什么注册表设置还原,但它是我问题的SOURCE

  1. 我尝试了所有正在运行的管理员
  2. 所有IIS/IIS express重新安装。
  3. 各种“hacks”

归结为必须再次修复注册表。

  1. 无法作为管理员甚至打开注册表(需要访问注册表,因为问题不是与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 documents更改为c:\dev

现在ALL很好和Visual Studio打开了15个项目的解决方案并连接到IIS并且没有抱怨无法访问iis元数据

我之前从未遇到过这种情况,因为当前工作中没有人遇到过这个问题(许多人已经在这里待了很长时间,有些人得到了其他机器的克隆“工作”而且很多都在另一个领域等等。)

7
Tom Stickel

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

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

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

  5. 现在通过右键单击Project> Properties> Web并选择Use Local IIS Web Server(取消选中Use IIS Express)并单击Create,添加一个新的IIS虚拟目录。虚拟目录按钮。
7
Rushby

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

6
Saurabh Soni

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

4
Ramazan Sağır

更改此密钥对我有用:

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

该位置不存在。

3
garryp

除了 答案 @nologo之外,我还必须使用IIS。所以我改变了

<UseIIS>True</UseIIS>

首先是“假”。

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

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

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

<UseIISExpress>false</UseIISExpress>


如果仅此一项不起作用,请尝试以下操作并再试一次:

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

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


更改后,我可以再次加载项目。

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

2
E2rdo

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

我正在运行VS2012,几乎每次我都必须执行右键单击,以管理员身份运行。我厌倦了这一点,所以我进入了快捷方式的属性,单击高级,然后单击“以管理员身份运行”选项。现在VS2012总是以管理员身份运行,只要我打开它 从那个快捷方式

来自该快捷方式位非常重要。我继续分支我的项目,并将分支下载到新的本地文件夹。然后,当我从快捷方式打开它时我没有问题。但是,如果我直接进入文件夹,并在本地运行项目 没有快捷方式,它没有 以管理员身份运行,我收到此错误。

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

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

希望这有用。

2
Francis Rodgers

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

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

2
Nathan Tregillus

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

  • 配置VS以管理员身份运行
  • 通过“添加/删除程序”,“Windows功能”卸载IIS
  • 重启
  • 运行WinRAR或类似管理员和存档C:\windows\system32\inetsrv\
  • 运行cmd作为admin和rmdir /s c:\windows\system32\inetsrv\以完全删除上次安装的所有跟踪。保持高架cmd提示打开以供日后使用。
  • 使用IIS 6元数据库兼容性重新安装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。创建C:\Temp\Documents\并从我的U盘复制IISExpress文件夹。
  • 使用HKCU\Software\Microsoft\IISExpressC:\Temp\Documents\IISExpress中创建CustomUserHome
  • 这使我可以让Visual Studio打开我的Web项目并编辑属性。我调整了项目以将Web服务器设置存储在用户文件中,并将其调整为使用自定义URL(不确定是否有必要)
  • 每次重新启动时,我可能/可能不必运行subst命令。不在乎。

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

2
scottt732

还有一件事可以尝试:

  • 检查您是否有待更新的Windows更新。
  • 如果你这样做,请在尝试其他任何事情之前重启。

我倾向于永远不会关闭我的机器,所以我有很多等待重启。并修复了它。

2
Thomas Eyde

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

1
Kenmeister

打开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并测试解决问题的应用程序

1
user3921752

我今天和我有同样的问题。我发现它很烦人。虽然我已经从同一个IIS开发了其他两个网站,但仍然无法创建新网站。很奇怪,但我这样做了。

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

除了工作之外,您不需要关闭/重新安装除我所说的以外的任何内容。

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

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

1
KMX

此链接添加功能后我遇到了同样的问题 之后我跟着 这篇文章 问题已经消失。

1
Jackboys
  1. 创建“devenv.exe”的快捷方式
  2. 选择快捷方式的“以管理员身份运行”选项
  3. doble点击捷径并重新打开你的项目
1

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

0
Dennis van Dalen

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

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

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

0
JohnCooling

运行命令:

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
0
Denis Prohorchik

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

0
Roman Borovets

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

在我的情况下,实际上IISExpress是问题的根源。右键单击控制面板中程序和功能中的IIS Express并选择修复,在不到两分钟的时间内修复了问题。

0
JGa

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

0
Ray Koopa

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

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

0
Yossi

我在Windows 10 Professional 64位计算机上遇到过这种情况,这里发布的其他答案都没有帮助。它在我经历了蓝屏死机后开始发生,我发现UAC已经重新开启了。仅作为管理员运行Visual Studio不是解决方案,因为我的源控件位于网络驱动器上,Visual Studio无法使用UAC访问该驱动器。

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

0
Jonathon Cowley-Thom

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

0
user2686690