安装 Visual Studio 2012 并打开我的解决方案后,我收到以下形式的一系列错误:
Web 应用程序项目 Foo 配置为使用 IIS。无法访问 IIS 元数据库。您没有足够的权限访问您机器上的 IIS 网站。
我为我们的每个 Web 应用程序都得到了这个。
我尝试过的事情:
以管理员身份运行 Visual Studio 运行 aspnet_regiis.exe -ga MyUserName 运行 aspnet_regiis.exe -i
这些似乎是解决此问题的常见解决方案,但我对它们没有任何成功。
还有什么我可以尝试做的吗?
在 Windows 8 专业版上:
%systemroot%\inetsrv\config
在 Windows 7 和 8.1 和 10 上
%systemroot%\System32\inetsrv\config
(其中 %systemroot%
通常是 C:\Windows
)
在 Windows 资源管理器中导航到上面的相应位置。您将被阻止访问,弹出窗口显示:
“您无权访问此文件夹 - 单击继续以永久访问此文件夹”
单击此文件夹的“继续”,并在下方显示“导出”文件夹。我将快捷方式改回“以我身份运行”(域和本地管理员的成员),并且能够打开和部署解决方案。
我认为您没有以管理员权限运行 Visual Studio。看那个:
http://bloggingabout.net/blogs/rick/archive/2012/10/04/unable-to-access-the-iis-metabase.aspx
去引用
解决方案很简单:使用“以管理员身份运行”启动 Visual Studio。您可以通过右键单击快捷方式并选择“以管理员身份运行”来执行此操作。
https://i.stack.imgur.com/pa800.png
试试看,如果有帮助,请告诉我!
注意:我们在 Windows 7 上使用 Visual Studio 2005 和 2010 运行 IIS 7.5,并使用超级老式的 WebServices (.asmx)...
IIS Admin service
已启动并将启动类型设置为自动而不是禁用。
我通过向 %systemroot%\inetsrv\config
授予 IIS AppPool 身份权限解决了这个问题
如果您正在处理不需要使用 IIS 的项目,则打开出现此错误的项目的解决方法是只需右键单击已卸载的项目并单击编辑,搜索:
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="">
<WebProjectProperties>
<UseIIS>True</UseIIS>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>
并将 USEIIS 设置为 false
<UseIIS>False</UseIIS>
保存更改后通过右键单击重新加载项目。
<UseIIS>False</UseIIS>
无效。节点 <UseIISExpress>true</UseIISExpress>
也存在。将其设置为 false 没有帮助。仍然需要对 iis 元数据库进行相同的错误访问。
我有两种不同类型的问题导致此错误,并认为我会分享...
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 file 进入了我的文档,它要么不存在,要么无法访问。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal
指向不存在的文件共享。将其更改为本地路径为我解决了这个问题。
IISExpress
文件夹从另一台机器上的 Documents 文件夹复制到我的新机器上,然后事情就开始工作了。
感谢所有回答的人。由于关闭了很长时间,我无法提供太多反馈,但我最终解决了我的问题。我尝试了许多其他解决方案,但它们并没有解决我的问题,但我确信当根本原因不同时它们会有所帮助。
我的解决方案
我通过关闭 Windows 7 中的 IIS 和 .Net Framework 功能然后重新打开它们解决了这个问题。似乎这种重新安装是解决我的问题的原因。我仍然不知道是什么导致了问题,但我团队中的至少一位其他开发人员也遇到了同样的问题。
导航到文件夹:%systemroot%\System32\inetsrv\config
显示一个安全对话框。单击继续,这可能会解决问题。这适用于两台独立的 Win 10/VS 2017/IIS 机器。
在 Windows 81 上,从管理员命令提示符处,使用:
icacls "C:\Windows\System32\inetsrv\config" /t /grant "IIS AppPool\DefaultAppPool":(R)
然后回到VS,右键点击失败的项目,选择Reload。
归功于:IIS7 Permissions Overview - ApplicationPoolIdentity
我遇到了这个问题 - 症状是一样的,但我遇到的问题是我将“我的文档”文件夹设置为网络共享,并且无法访问该共享。
根本问题是位于 %USERPROFILE%\Documents 的 IIS 配置文件不可访问。一旦我更改了“我的文档”文件夹位置(我修改了 reg 值),它又开始工作了。
我知道这可能不是您可能遇到的常见情况,但我已将其发布在这里,因为它给出了相同的症状。
我今天遇到了这个问题,并通过从项目文件中删除 IISUrl 解决了这个问题:
右键单击项目 单击编辑 删除以下行:
%systemroot%\System32\inetsrv\config
一次并以管理员身份继续;也打开 %systemroot%\System32\inetsrv\config\Export
并做同样的事情。 (error-unable-to-access-the-iis-metabase)
你可能会遇到这个问题并且和我有同样的问题。我之前“解决”了它,然后停电和计算机崩溃,不知道为什么注册表设置恢复,但它是我问题的根源。
我尝试了所有以管理员身份运行的所有 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\stickelt\my documents
更改为 c:\dev
)
现在一切都很好,Visual Studio 打开了包含 15 个项目的解决方案并连接到 IIS,并且不会抱怨无法访问 iis 元数据
我以前从来没有遇到过这个问题,因为目前的工作没有人遇到这个问题(很多人已经在这里很长时间了,有些人克隆了其他“工作”的机器,很多人在另一个域上等等。)
我今天刚遇到这个问题,我发现我没有以“以管理员身份运行”打开 VS。完成此操作后,我能够发布服务。
如果您有管理员权限,请右键单击 Visual Studio 图标 > 属性,然后高级,“以管理员身份运行”检查。您可以直接以管理员身份运行 visaul studio。这样,正式而基本。
除了@nologo 的answer,我还必须使用 IIS。所以我改变了
<UseIIS>True</UseIIS>
先说“假”。
打开解决方案并确保可以加载项目。
关闭解决方案和该 Visual Studio 实例
再次将值更改为“真”
打开解决方案。这一次,我没有收到任何错误/警告。当我的项目映射到 IIS 网站时,我也可以毫无问题地使用 Ctrl+F5 或 F5 运行。
更改此密钥对我有用:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal
该位置不存在。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal
。这是由于配置文件路径设置为 Active Directory/组策略中不存在的目录。
HKEY_CURRENT_USER\Software\Microsoft\IISExpress
,它是一个覆盖自定义目录,也是此问题的另一个潜在罪魁祸首
转到项目的根目录并找到以下文件:YourProjectName.csproj.user - 在其中,确保 UseIISExpress 设置为 false:
<UseIISExpress>false</UseIISExpress>
如果仅此一项不起作用,请尝试以下操作,然后重试:
YourProjectName.csproj - 在主项目文件中,确保 UseIIS 和 UseIISExpress 都设置为 false:
<UseIIS>True</UseIIS>
<UseIISExpress>false</UseIISExpress>
更改这些后,我能够再次加载项目。
注意:请确保您以管理员身份运行 VS,如其他答案中所述。
我也有类似的问题。我的解决方案是对“以管理员身份运行”答案的扩展,我希望有人会觉得它有用。
我正在运行 VS2012,几乎每次我都必须右键单击,以管理员身份运行。我对此感到厌倦,所以我进入快捷方式的属性,单击高级,然后单击“以管理员身份运行”选项。现在,每当我从该快捷方式打开 VS2012 时,它总是以管理员身份运行。
从那个快捷方式开始很重要。我继续分支我的项目,并将分支下载到新的本地文件夹。然后,当我从快捷方式打开它时,我没有问题。但是如果我直接进入该文件夹,并在没有快捷方式的情况下在本地运行项目,它没有以管理员身份运行,我得到了这个错误。
一旦我像往常一样首先打开 VS2012,然后使用 File/Open/Project 它再次工作没问题。 (因为我以管理员身份运行)。但是当我使用 Windows 文件管理器打开解决方案时,我没有以管理员身份运行。
其他建议似乎有些极端,但这很简单,所以我倾向于先尝试一下。
希望这会有所帮助。
这似乎是“所有错误都会导致此消息”类型的错误之一。
我的是应用程序池刚刚关闭。我重新打开它,一切正常。
您还可以尝试一件事:
检查您是否有待处理的 Windows 更新。
如果这样做,请在尝试其他任何操作之前重新启动。
我往往从不关闭我的机器,所以我有很多人在等待重启。这解决了它。
我尝试了上面的一切。归功于上述所有回复。在自己尝试了所有建议之后,我只是按照对我来说有意义的顺序组合了这些建议组合。请注意,我的 Documents 文件夹位于共享驱动器上。除非你在同一条船上,否则 subst/IISExpress 的东西不适用。
配置 VS 以管理员身份运行
通过添加/删除程序、Windows 功能卸载 IIS
重启
运行 WinRAR 或类似管理员和存档 C:\windows\system32\inetsrv\
以管理员身份运行 cmd 并运行 rmdir /sc:\windows\system32\inetsrv\ 以完全删除上次安装的所有痕迹。将提升的 cmd 提示打开以供以后使用。
重新安装具有 IIS 6 Metabase 兼容性的 IIS(怀疑这是必要的)
保留默认 AppPool 和默认网站原样(我之前已将两者都删除)
跑 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\IISExpress 在 HKCU\Software\Microsoft\IISExpress 中创建 CustomUserHome 键
这让我可以让 Visual Studio 打开我的 Web 项目并编辑属性。我调整了项目以将 Web 服务器设置存储在用户文件中,并将其调整为使用自定义 URL(不确定是否有必要)
每次重新启动时,我可能/可能不必运行 subst 命令。别在意。
在放弃 3 次并花费大约 6 小时后,我可以在 Visual Studio(2015 更新 2)中打开 Web 项目。
我今天也遇到了同样的问题。我发现它很烦人。虽然我已经从同一个 IIS 开发了另外两个网站,但仍然无法创建新网站。奇怪,但我做到了。
从 IIS 中删除站点
创建新站点,将其命名为“new_site”
选择站点名称本身以外的应用程序池。所以它不会破坏默认设置。
如果您从同一台机器上运行它,请保持 IP“未分配”
给它一些未使用的端口
通过右键单击 VS 可执行快捷方式以“以管理员身份运行”运行 Visual Studio。
你完成了!
除了我所说的以外,您不需要关闭/重新安装任何东西,因为它可以工作。
让我知道是否有人像我一样遇到同样的问题并以同样的方式解决。我认为这不是问题,而是在 Visual Studio 拒绝打开的 localhost 上创建网站的错误方式。
我希望这会对新手有所帮助。
创建“devenv.exe”的快捷方式选择快捷方式的“以管理员身份运行”选项双击快捷方式并重新打开您的项目
我修复了 Visual Studio 2015 来解决这个问题。修复花了很长时间,但它解决了问题,而上面的大部分内容都没有。我正在运行 Win 7 企业版。
打开 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 并测试解决您的问题的应用程序
在 Visual Studio 2015 中:我将 .csproj 文件中的 UseIIS 更改为 false,它对我有用。
<UseIIS>False</UseIIS>
在我的消息中,除了抱怨“无法访问 IIS 元数据库”之外,还提到无法访问 "<IISUrl>http://localhost:6416/</IISUrl>"
。右键单击卸载项目,单击编辑,找到"<IISUrl>http://localhost:6416/</IISUrl>"
行,将其注释掉。重新加载,它应该工作。这与管理员无权访问该地址有关。
我有一个类似的问题。 Visual Studio 不会加载任何 Web 项目并显示错误:创建虚拟目录
就我而言,问题的根源实际上是 IISExpress。在控制面板的程序和功能中右键单击 IIS Express,然后选择修复,不到两分钟就解决了这个问题。
我正在使用 Win 8 Pro 和 VS 2013。在尝试了此页面中的所有内容之后......我只是重新安装了 IIS Express 8,现在一切正常(即使没有以管理员身份运行)。
我的结论是,这是一个相当普遍的错误,并且有多个根本原因。
不定期副业成功案例分享
%systemroot%\System32\inetsrv\config
也适用于 Windows 10。