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

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

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

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


我尝试过的事情:

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

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

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

372388 次浏览

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

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

引用一下

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

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

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

注意:我们正在使用Visual Studio 2005和2010在Windows 7上运行IIS 7.5,并使用超级老派的WebServices(. asmx)做一些事情…

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

我的解决方案

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

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

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

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

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

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

希望这是有帮助的。

我今天也遇到了同样的问题。我觉得很烦人。虽然我已经从同一个IIS开发了另外两个网站,但仍然无法创建新网站。奇怪的是,但我做到了。

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

您不需要关闭/重新安装除我所说的以外的任何东西,因为它有效。

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

我希望这能帮助新手。

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

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

关于Windows8Pro

%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, wasunable to be accessed -- even when running as an admin.2. The directory was on a drive that didn't exist...

这两个都源于一个不幸的(imo)选择由MS将东西放在Documents或My Document目录中,组合了非常糟糕的错误消息。在上述两种情况下,根本问题是IISExpress配置文件进入我的文档,它要么不存在,要么无法访问。

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

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

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

<UseIIS>True</UseIIS>

首先是“假”。

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

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

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

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

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

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

还有一件事你可以尝试:

  • 检查您是否有待处理的Windows更新。
  • 如果您这样做,请在尝试任何其他操作之前重新启动。

我倾向于从不关闭我的机器,所以我有很多机器等待重新启动。这就解决了它。

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

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

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

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

图片来源:IIS7权限概览

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

根本问题是位于%USERPROFILE%\Documents的IIS配置文件无法访问。一旦我更改了“我的文档”文件夹位置(我修改了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\软件\微软\Windows\货币版本\资源管理器\用户Shell文件夹\个人

该位置不存在。

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

如果您有管理员权限,请右键单击Visual Studio图标>属性,然后高级选中“以管理员身份运行”。您可以直接以管理员身份运行visaul Studio。这种方式,正式的,所以基本的。

我在Windows 10专业版64位计算机上遇到了这种情况,这里发布的其他答案都没有帮助。它开始发生在我经历蓝屏死机之后,我发现UAC已经重新打开了。仅以管理员身份运行Visual Studio不是解决方案,因为我的源代码控制位于网络驱动器上,Visual Studio无法在UAC打开的情况下访问该驱动器。

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

我今天遇到了这个问题,并通过从项目文件中删除IISUrl来修复问题:

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

     <IISUrl>http://localhost:xxxxx </IISUrl>
  4. Reload project

  5. Now add a new IIS virtual directory by right clicking Project > Properties > Web and selecting Use Local IIS Web Server (Uncheck Use IIS Express) and clicking the Create Virtual Directory button.

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

  • 配置VS以管理员身份运行
  • 通过添加/删除程序、Windows功能卸载IIS
  • 重启
  • 运行WinRAR或类似的管理和归档C:\windows\system32\inetsrv\
  • 以admin和rmdir /s c:\windows\system32\inetsrv\运行cmd以完全删除上次安装的所有痕迹。将提升的cmd提示符打开以供以后使用。
  • 重新安装具有IIS 6元数据库兼容性的IIS(怀疑这是必要的)
  • 保留默认应用池和默认网站(我之前已经删除了两者)
  • 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文件夹。
  • C:\Temp\Documents\IISExpressHKCU\Software\Microsoft\IISExpress中创建了CustomUserHome密钥
  • 这允许我让Visual Studio打开我的Web项目并编辑属性。我调整了项目以将Web服务器设置存储在用户文件中,并将其调整为使用自定义URL(不确定是否有必要)
  • 每次重新启动时,我可能/可能不必运行subst命令。不在乎。

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

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

  1. 我作为管理人员尝试了所有的跑步
  2. 所有IIS/IIS Express重新安装。
  3. 各种“黑客”

归根结底是不得不再次修复注册表。

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

  2. 桌面UnHookExec.inf

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

  1. HKEY_CURRENT_USER\软件\微软\Windows\货币版本\资源管理器\用户Shell文件夹\个人指向不存在的文件共享。将其更改为本地路径为我解决了这个问题。-Pasi Savolainen Jul 14'14 at 8:41

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

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

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

我从这篇文章2860348">此链接添加功能后遇到了同样的问题,之后我遵循这篇文章问题消失了。

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

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

YourProjectName.csproj.user-在里面,确保UseIISExpress设置为虚假

<UseIISExpress>false</UseIISExpress>


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

YourProjectName.csproj-在主项目文件中,确保UseIISUseIISExpress都设置为虚假

<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 Expressapplication.config位于网络驱动器上,请确保驱动器已映射并连接到我的计算机中。

我正面临这个问题,当我重新映射我的计算机中的网络驱动器时,问题得到了解决。

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

<UseIIS>False</UseIIS>