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

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

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


我尝试过的事情:

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

这些似乎是解决这个问题的常见方法,但我没有成功。

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


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

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

引用

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


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

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

注意:我们在Windows 7上运行IIS 7.5,同时使用Visual Studio 2005和2010,并使用超老式的Web服务(.asmx)。。。


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

我的解决方案

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


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

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

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

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

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

希望这有帮助。


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

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

您无需关闭/重新安装除我所述之外的任何内容,因为它可以正常工作。

如果有人和我一样有同样的问题,并以同样的方式解决,请告诉我。我认为这不是问题所在,而是在本地主机上创建网站的错误方式,Visual Studio拒绝打开该网站。

我希望这对新手有帮助。


创建“devenv.exe”的快捷方式选择快捷方式的“以管理员身份运行”选项doble单击快捷方式并重新打开项目


我通过向%systemroot%\inetsrv\config授予IIS AppPool标识权限解决了此问题


在Windows 8 Pro上:

%systemroot%\inetsrv\config

在Windows 7、8.1和10上

%systemroot%\System32\inetsrv\config 

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

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

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

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


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

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


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

<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选择将内容放在Documents或My Document目录中的不幸(imo)选择,并伴有非常糟糕的错误消息。在上述两种情况下,根本问题是IISExpress Config文件位于My Documents中,它要么不存在,要么无法访问。


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


我今天刚遇到这个问题,我发现我没有以“以管理员身份运行”的身份打开VS。这样做之后,我就可以发布服务了。


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

<UseIIS>True</UseIIS>

首先设置为“False”。

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


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

在我的案例中,问题的根源实际上是IISExpress。右键单击控制面板中的“程序和功能”中的“IIS Express”,然后选择“修复”,在不到两分钟的时间内修复了该问题。


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

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


打开visual studio命令提示符,键入以下命令并运行

aspnet_regiis -ga machinename\ASPNET

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

如果上述命令无法解决问题,请尝试在visual studio命令提示符下运行以下命令:-

aspnet_regiis -i

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

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

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

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


还有一件事你可以尝试:

检查是否有挂起的Windows更新。如果需要,请在尝试其他操作之前重新启动。

我倾向于从不关闭我的机器,所以我有很多人在等待重启。这就解决了问题。


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


在windows 81上,从admin命令提示符,使用:

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

然后返回VS,右键单击失败的项目,选择重新加载。

归功于:IIS7权限概述-ApplicationPoolIdentity


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

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

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


创建一个新的网站,在出现错误后,转到您创建项目的文件夹,在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>

更改此密钥对我有效:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\用户外壳文件夹\个人

位置不存在。


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


如果您具有管理员权限,请右键单击Visual Studio图标>财产,然后选择“以管理员身份运行”复选框。您可以直接以管理员身份运行visaul studio。这种方式,正式而基本。


我在一台Windows 10 Professional 64位计算机上体验了这一点,这里发布的其他答案都没有帮助。这是在我经历了死亡的蓝屏之后开始的,我发现UAC已经重新打开了自己。单独以管理员身份运行Visual Studio不是解决方案,因为我的源代码控制位于网络驱动器上,而在UAC打开的情况下,Visual Studio无法访问。

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


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

右键单击项目单击“编辑”删除以下行:<IISUrl>http://localhost:xxxxx</IISUrl>重新加载项目现在,通过右键单击“项目”>“财产”>“Web”并选择“使用本地IIS Web服务器”(取消选中“使用IIS Express”),然后单击“创建虚拟目录”按钮,添加一个新的IIS虚拟目录。


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

配置VS以管理员身份运行通过添加/删除程序、Windows功能卸载IIS重新启动运行WinRAR或类似于admin的东西并存档C:\windows\system32\inetsrv\以admin和rmdir/s c:\windows\system32\inetsrv\的身份运行cmd,以完全删除上次安装的所有痕迹。稍后保持提升的cmd提示打开。重新安装具有IIS 6元数据库兼容性的IIS(怀疑这是必要的)保持默认AppPool和默认网站不变(我以前删除了这两个)运行C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe-ga MYDOMAIN\scott732已运行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密钥这使我能够让VisualStudio打开我的web项目并编辑财产。我调整了项目以将web服务器设置存储在用户文件中,并将其调整为使用自定义URL(不确定这是否必要)每次重新启动时,我可能/可能不必运行subst命令。别在意。

在认输3次,花了大约6个小时后,我可以在Visual Studio(2015年更新2)中打开web项目。


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

我试过所有作为管理员的跑步所有IIS/IIS express都将重新安装。各种“黑客”

最后不得不再次修复注册表。

管理员甚至无法打开regedit(需要访问注册表,因为gpedit.msc管理模板没有问题)桌面上的UnHookExec.inf

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

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

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

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

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


在从这个链接添加功能之后,我也遇到了同样的问题。后来我关注了这篇文章,问题消失了。


为了解决这个问题,我对Visual Studio 2015进行了修复。修复花费了很长时间,但它解决了问题,而上述大部分工作都没有解决。我在经营Win 7企业。


转到项目的根目录,找到以下文件:YourProjectName.csproject.user-在其中,确保UseIISExpress设置为false:

<UseIISExpress>false</UseIISExpress>

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

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

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

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

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


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


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


运行命令:

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

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

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

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


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

<UseIIS>False</UseIIS>