提问



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



  Web应用程序项目Foo配置为使用IIS。

  无法访问IIS元数据库。您没有足够的权限访问计算机上的IIS网站。



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



  1. 以管理员身份运行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资源管理器中导航到上面的相应位置。您将被弹出窗口阻止访问,该弹出窗口显示:



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



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

其它参考1


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


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


去引用



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


其它参考2


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


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


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

其它参考3


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

其它参考4


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


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


并将USEIIS设置为false


<UseIIS>False</UseIIS>


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

其它参考5


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


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

其它参考6


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


我的解决方案


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

其它参考7


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


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


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

其它参考8


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


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


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


感谢:IIS7权限概述 - ApplicationPoolIdentity

其它参考9


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



  1. 我尝试了所有正在运行的管理员

  2. 所有IIS/IIS快速重新安装。

  3. 各种黑客



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



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

  2. 桌面上的UnHookExec.inf



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



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



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


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


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

其它参考10


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



  1. 右键单击项目

  2. 点击修改

  3. 删除以下行:


     <IISUrl>http://localhost:xxxxx </IISUrl>
    

  4. 重新加载项目

  5. 现在,通过右键单击项目>属性>Web并选择使用本地IIS Web服务器(取消选中使用IIS Express)并单击创建虚拟目录按钮,添加新的IIS虚拟目录。


其它参考11


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

其它参考12


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

其它参考13


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


<UseIIS>True</UseIIS>


首先是假。



  • 打开解决方案并确保可以加载项目。

  • 关闭解决方案和Visual Studio的实例

  • 再次将值更改为True

  • 打开解决方案。
    这一次,我没有收到任何错误/警告。当我的项目映射到IIS网站时,我也可以使用Ctrl + F5或F5运行而没有任何问题。


其它参考14


更改此密钥对我有用:


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


这个位置并不存在。

其它参考15


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


我正在运行VS2012,几乎每次我都必须执行右键单击,以管理员身份运行。我厌倦了这一点,所以我进入了快捷方式的属性,单击高级,然后单击以管理员身份运行选项。现在,当我从该快捷方式打开时,VS2012始终以管理员身份运行。


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


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


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


希望这很有帮助。

其它参考16


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


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

其它参考17


还有一件事你可以尝试:



  • 检查您是否有待更新的Windows更新。

  • 如果你这样做,请在尝试其他任何事情之前重启。



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

其它参考18


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



  • 配置VS以管理员身份运行

  • 通过添加/删除程序,Windows功能
  • 卸载IIS
  • 重新启动

  • 运行WinRAR或类似管理员和存档C:\windows\system32\inetsrv\

  • 以管理员身份运行cmd,rmdir /s c:\windows\system32\inetsrv\完全删除上次安装的所有痕迹。将提升的cmd提示保持打开状态以供日后使用。

  • 使用IIS 6 Metabase兼容性重新安装IIS(怀疑这是必要的)

  • 保留默认AppPool和默认网站(我以前删除了两者)

  • Ran C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ga MYDOMAIN\scottt732

  • Ran 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文件夹。

  • 使用C:\Temp\Documents\IISExpress
  • HKCU\Software\Microsoft\IISExpress中创建CustomUserHome
  • 这使我可以让Visual Studio打开我的Web项目并编辑属性。我调整了项目以将Web服务器设置存储在用户文件中,并将其调整为使用自定义URL(不确定是否有必要)

  • 每次重新启动时,我/可能不必运行subst命令。别小心。



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

其它参考19


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



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


<UseIISExpress>false</UseIISExpress>






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


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


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




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


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

其它参考20


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



  • 从IIS中删除网站

  • 创建新网站,为其命名为new_site

  • 选择除站点名称本身以外的应用程序池。所以它不会搞乱默认设置。

  • 如果从同一台计算机上运行,​​则保持IP未分配

  • 给它一些未使用的端口

  • 右键单击VS可执行快捷方式,以以管理员身份运行运行Visual Studio。

  • 你完成了!



除了我所说的以外,你不需要关闭/重新安装任何其他东西。


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


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

其它参考21



  1. 创建devenv.exe
  2. 的快捷方式
  3. 选择快捷方式
  4. 的以管理员身份运行选项
  5. 点击快捷方式并重新打开您的项目


其它参考22


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

其它参考23


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

其它参考24


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

其它参考25


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


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

其它参考26


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


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

其它参考27


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

其它参考28


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

其它参考29


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


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