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

安装Visual Studio 2012并打开我的解决scheme后,我得到了一系列的错误在这种forms:

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

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

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

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

Windows 8 Pro上

%systemroot%\inetsrv\config 

Windows 7和8.1和10上

 %systemroot%\System32\inetsrv\config 

(其中%systemroot%通常是C:\Windows

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

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

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

我认为你没有使用pipe理员权限运行visual studio。 看那个:

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

去引用

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

我想我们在工作中遇到了类似的问题。 对于我们来说,解决scheme是进入控制面板 – >程序和function – >打开或closuresWindowsfunction…里面,我们必须selectInternet信息服务 – > Webpipe理工具 – > IIS 6pipe理兼容性 – > IIS元数据库和IIS 6configuration兼容性。 显示IIS元数据库选项的Windows功能对话框

试试看,让我知道,如果有帮助!

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

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

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

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

并将USEIIS设置为false

 <UseIIS>False</UseIIS> 

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

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

 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)的select,把事情放在文档或我的文档目录,结合真正糟糕的错误信息。 在上述两种情况下,根本的问题是IISExpressconfiguration文件进入我的文档,它不是存在或不能被访问。

谢谢大家回答。 由于这是closures了很长时间,我不能提供太多的反馈,但我最终确定了我的问题。 我尝试了许多其他的解决scheme,但他们没有解决我的问题,但我相信他们在根本原因不同的情况下提供帮助。

我的解决scheme

我通过closuresWindows 7中的IIS和.Net Frameworkfunction,然后重新打开它,解决了这个问题。 这似乎是重新安装是什么解决了我的问题。 我仍然不知道是什么导致了这个问题,但我们团队中至less有一个其他开发人员也有同样的问题。

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

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

然后回到VS,右键单击失败的项目,select重新加载。

信贷: IIS7权限概述 – ApplicationPoolIdentity

我有这个问题 – 症状是一样的,但我遇到的问题是,我已经设置“我的文档”文件夹在networking共享上,共享不可访问。

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

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

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

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

  1. 右键单击项目
  2. 点击修改
  3. 删除以下行:

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

  5. 现在通过右键单击“项目”>“属性”>“Web”并select“使用本地IIS Web服务器(取消选中使用IIS Express)”并单击“创build虚拟目录”button来添加新的IIS虚拟目录。

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

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

 <UseIIS>True</UseIIS> 

首先是“假”。

  • 打开解决scheme,确保项目可以加载。
  • closures解决scheme和Visual Studio的实例
  • 再次将该值更改为“真”
  • 打开解决scheme。 这一次,我没有得到任何错误/警告。 当我的项目被映射到一个IIS网站时,我也可以在没有任何问题的情况下使用Ctrl + F5或F5来运行。

你可能会碰到这个问题,和我有同样的问题。 我“解决了”之前,然后停电和电脑崩溃,不知道为什么registry设置恢复,但这是我的问题的来源

  1. 我尝试所有作为pipe理员运行
  2. 所有的IIS / IIS快速重新安装。
  3. 各种“黑客”

回到必须再次修复registry。

  1. 不能作为pipe理员甚至打开registry(需要访问registry,因为问题不在gpedit.mscpipe理模板)

  2. 桌面上的UnHookExec.inf

只需保存UnHookExec.inf并通过右键单击并select安装即可进行安装。 安装该文件将不会显示任何popup或通知框。 http://www.tweakandtrick.com/2011/04/enable-regedit-registry-editor.html

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

(从\\cs2data\home\stickelt\my documents更改为c:\dev

现在一切都很好 ,Visual Studio开放了15个项目的解决scheme,连接到IIS,不抱怨不能访问iis元数据

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

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

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

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

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

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

希望这是有帮助的。

这看起来像是“所有错误导致这个消息”types的错误之一。

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

还有一件事你可以尝试:

  • 检查您是否有未决的Windows更新。
  • 如果你这样做,请在重新尝试之前重新启动。

我倾向于永远不closures我的机器,所以我有很多人在等待重启。 并修复它。

改变这个键为我工作:

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

该位置不存在。

我尝试了以上的一切。 这个功劳归功于上面所有的回应。 在尝试了所有的build议之后,我只是按照对我有意义的顺序汇集了这些build议的组合。 请注意我的文档文件夹位于共享驱动器上。 子/ IISExpress的东西不适用,除非你在同一条船上。

  • configurationVS以pipe理员身份运行
  • 通过添加/删除程序,Windowsfunction卸载IIS
  • 重启
  • 运行WinRAR或类似的pipe理和存档C:\windows\system32\inetsrv\
  • 以pipe理员身份运行cmd并运行rmdir /sc:\windows\system32\inetsrv\以彻底删除上次安装的所有跟踪。 保持提升的cmd提示符以后打开。
  • 重新安装IIS与IIS 6元数据库兼容性(怀疑这是必要的)
  • 保持默认AppPool和默认网站原样(我以前都删除了)
  • Ran 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 。 创buildC:\Temp\Documents\并从我的U盘复制IISExpress文件夹。
  • HKCU\Software\Microsoft\IISExpress中用C:\Temp\Documents\IISExpress创buildCustomUserHome
  • 这使我可以让Visual Studio打开我的web项目并编辑属性。 我调整了项目来存储Web服务器设置在用户文件中,并将其调整为使用自定义URL(不确定是否有必要)
  • 每次重新启动时,我可能不需要运行subst命令。 不在乎。

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

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

  • 从IIS中删除该站点
  • 创build新的网站,给它一个名字“new_site”
  • select应用程序池而非站点名称本身。 所以它不会搞乱默认设置。
  • 如果您在同一台机器上运行IP,请保持IP“未分配”
  • 给它一些未使用的端口
  • 通过右键单击VS可执行文件快捷方式,将Visual Studio作为“以pipe理员身份运行”运行。
  • 你完成了!

您不需要closures/重新安装除了我所说的工作以外的任何东西。

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

我希望这会帮助新手。

  1. 创build一个“devenv.exe”的快捷方式
  2. select该快捷方式的“以pipe理员身份运行”选项
  3. 双击快捷方式并重新打开您的项目

打开visual studio命令提示符并input下面的命令并运行aspnet_regiis -ga machinename \ ASPNET运行上述命令之后重置IIS并testing解决问题的应用程序。

如果上面的命令不能解决你的问题,然后尝试在Visual Studio命令提示符下运行命令

aspnet_regiis -i或者我们也可以在我们的Windows命令提示符下运行上面的命令

转到“开始”菜单并打开“运行”,然后input并单击“确定”

%windir%\ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_regiis.exe -I之后,重置IIS并testing解决您的问题的应用程序

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

YourProjectName.csproj.user – 在里面,确保UseIISExpress设置为false

 <UseIISExpress>false</UseIISExpress> 

如果单独不起作用,请尝试以下操作,然后重试:

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

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

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

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

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

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

在我的情况下,它实际上是IISExpress是问题的根源。 右键单击控制面板中的“程序和function”中的IIS Express,然后select修复,在两分钟内解决问题。

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

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

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

我有同样的问题。 对我而言,我使用的是与以前的Windows安装相同的文档。 简单地从我的文档中删除IISExpress文件夹的伎俩。

我在Windows 10 Professional 64位机器上遇到过这个问题,而在这里发布的其他答案都没有帮助。 它在我经历了蓝屏死亡之后开始发生,并且我发现UAC已经转回了自己。 单独以pipe理员身份运行Visual Studio不是解决scheme,因为我的源代码pipe理器位于networking驱动器上,Visual Studio无法使用UAC访问该networking驱动器。

通过GPEDITclosuresUAC解决了问题。

我从这个链接添加function后,我有同样的问题后,我跟着这篇文章的问题已经没有了。