错误 – 无法访问IIS元数据库
安装Visual Studio 2012并打开我的解决scheme后,我得到了一系列的错误在这种forms:
Web应用程序项目Foo被configuration为使用IIS。
无法访问IIS元数据库。 您没有足够的权限访问您的计算机上的IIS网站。
我为我们的每个Web应用程序得到这个。 我已经尝试过的事情:
- 以pipe理员身份运行Visual Studio
- 运行aspnet_regiis.exe -ga MyUserName
- 运行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兼容性。
试试看,让我知道,如果有帮助!
注意:我们使用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来解决问题:
- 右键单击项目
- 点击修改
-
删除以下行:
<IISUrl>http://localhost:xxxxx </IISUrl>
-
重新加载项目
- 现在通过右键单击“项目”>“属性”>“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设置恢复,但这是我的问题的来源 。
- 我尝试所有作为pipe理员运行
- 所有的IIS / IIS快速重新安装。
- 各种“黑客”
回到必须再次修复registry。
-
不能作为pipe理员甚至打开registry(需要访问registry,因为问题不在gpedit.mscpipe理模板)
-
桌面上的UnHookExec.inf
只需保存UnHookExec.inf并通过右键单击并select安装即可进行安装。 安装该文件将不会显示任何popup或通知框。 http://www.tweakandtrick.com/2011/04/enable-regedit-registry-editor.html
- 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网站的错误方法。
我希望这会帮助新手。
- 创build一个“devenv.exe”的快捷方式
- select该快捷方式的“以pipe理员身份运行”选项
- 双击快捷方式并重新打开您的项目
打开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 – 在主项目文件中,确保UseIIS和UseIISExpress都设置为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后,我有同样的问题后,我跟着这篇文章的问题已经没有了。