Visual Studio 2013。您没有足够的权限访问计算机上的IIS网站。

56

我刚刚在我的 Windows 7 Ultimate x64 机器上安装了 VS2013 并启用了 IIS 7。尝试打开一个解决方案时,出现以下错误:

创建虚拟目录 localhost:xxxxx 失败,错误为:无法访问 IIS metabase。您没有足够的权限访问机器上的 IIS 网站。

我尝试以管理员身份运行 Visual Studio 2013(右键单击,以管理员身份运行),但仍然出现相同的错误。我还执行了 aspnet_regiis -i,但也没有帮助。


1
这个对我有用,也许对你有帮助(该文章是针对VS2012,但我的问题是在2013中):-http://social.msdn.microsoft.com/Forums/en-US/1d5cb9c7-af77-4bcd-8421-e813aff88bd3/help-with-visual-studio-2012-error-unable-to-access-the-iis-metabase?forum=visualstudiogeneral - sh1rts
打开和关闭IIS功能并没有解决问题。我必须先关闭IIS功能,然后卸载VS2013、.NET Framework 4.5.1。再次打开IIS,然后重新安装VS2013(其中包括.NET Frameworks 4.x)。现在似乎可以正常工作了。我猜测问题是由于在Windows 7上安装IIS之前安装VS和.NET Framework引起的。 - user3171214
还可以查看这个问题和答案:https://dev59.com/32cs5IYBdhLWcg3wcDaZ。我尝试了几件事情。其中一个起作用的是编辑 csproj 文件以使用 IIS。稍后,打开控制面板/打开或关闭 Windows 功能,并选择(选中)Internet Information Services - > Web 管理工具 -> IIS 6 管理兼容性 -> IIS Metabase 和 IIS 6 配置兼容性。这触发了一些安装。切换回 IIS Express,VS2013 下次在一个 ASP.NET MVC 项目上工作,该项目一直无法加载。不确定 什么 起作用。 - Developer63
12个回答

196

前往C:\Windows\System32\inetsrv。单击config文件夹。你会得到一个弹出框 - "您没有访问此文件夹的权限 - 单击继续以永久获得访问此文件夹的权限"。 对于位于config文件夹内的Export文件夹执行相同操作。

输入图像描述

你现在应该能够打开解决方案并将Web应用程序项目部署在IIS上。


4
你的解决方案太棒了!这是唯一一个解决了我的问题,而且无需重新启动。谢谢。 - Eric Draven
4
对我没起作用。我没有收到弹出窗口——我已经能够访问这个文件夹了。 - Jonathon Cowley-Thom
2
解决方案简洁明了,一针见血!它解决了我在使用VS2015时遇到的相同错误。谢谢! - James Shaw
1
我添加了一个快速视频,展示了您描述的过程,以便人们可以看到提示的外观,并理解需要修复两个文件夹。 - Walter Stabosz
这也是VS-2017的有效解决方案。 - Ali Khakpouri
显示剩余3条评论

14

对于我来说,这个错误的根本原因是IIS将配置文件夹安装在我工作场所的网络共享驱动器上。我不得不将其更改为使用本地驱动器,并解决了问题。

IIS会在您的%USER_HOME%/Documents文件夹中创建一个名为IISExpress的文件夹(对于我来说是一个共享驱动器)。

对我而言,这个问题通过卸载IIS并清除注册表中所有与IIS相关的内容来解决。然后,我必须更改注册表中的文档驱动器(KHCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders)从共享驱动器更改为本地驱动器(C:\Users[profile]\Documents)。

然后重新安装IIS。它应该在新的文档文件夹中创建一个IISExpress。


1
我们公司网络共享驱动器出问题了,我遇到了这个错误。我没能像你说的那样更改注册表设置,但一旦共享驱动器重新上线,错误就消失了,VS.NET又可以正常工作了。 - user441058
如果您无法通过注册表进行更改,您可以尝试以下方法:打开文件资源管理器 > C:/Users/[用户名]/ > 右键单击“文档” > 选择“位置”选项卡,更改位置字段。(我发现我没有权限更改此设置,但我必须更改注册表,也许您的权限可能不同) - dannash918
1
一定有比移动所有文档文件夹更好的解决方案。那似乎是一个杀鸡焉用牛刀的解决方案。 - cdmdotnet
你有没有找到从网络共享中删除它的方法?我也遇到了这个问题,但担心更改注册表可能会影响其他(非IIS)应用程序。 - askrich
不幸的是,这是我能想到的唯一解决方法。已经尝试多次重新安装,但都无法解决问题。不过自从我更改了这个设置后,我没有遇到任何其他问题。如果您愿意,您可以尝试更改它,如果出现问题,则可以将其改回来。 - dannash918

13
在Windows 8中,您需要右键单击devenv.exe并选择“解决兼容性问题”。 选择“解决程序问题”
勾选“程序需要其他权限”
点击“下一步”,点击“测试该程序...”
等待程序启动
点击“下一步”
选择“Yes,为此程序保存这些设置”
点击“关闭”

11

我已经尝试了每一个推荐的步骤,但都没有起作用。所以,我的最后一个资源是查看注册表,以找出我的用户是否指向临时文件夹或缓存文件夹。有些帖子建议在 HKEY_LOCAL_MACHINE 上检查;但那些是无用的。所以,最终我通过进入 HKEY_CURRENT_USER 找到了它,这是由 boilers222 建议的:
打开注册表 (CTRL-R, regedit, OK) 导航到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\ 发现 Personal 键指向 "\OurServer\RedirectedFolders\MyName\MyDocuments" 选中 Personal 键,右键单击它,并选择修改
输入指向我的用户文档文件的位置: "%USERPROFILE%\Documents\" 点击确定并关闭注册表编辑器 当我打开 Visual Studio 并打开我的解决方案时,它已经不再出现 "无法访问 IIS metabase" 的错误。


1
简而言之,问题在于您的“My Documents”\“Documents”文件夹位于网络共享中。哎呀,这是一个相当糟糕的限制。 - cdmdotnet
类似的情况 - 我的个人密钥指向了一个不再映射的驱动器。这引起的困扰真是令人惊讶。 - Dominick

10

尝试以管理员身份运行VS。如果不起作用,请检查是否拥有IIS元数据文件夹权限。打开Windows Explorer(Win + e)。在地址栏中键入以下内容:

win 7、win 8.1和win 10 %systemroot%\System32\inetsrv\config

win 8专业版 %systemroot%\inetsrv\config

如有需要,请允许访问。进入\Export\文件夹并再次允许访问。

来源在此


这个答案不是在2015年就已经提到了吗?无论如何,在我的Windows 10上仍然不起作用...在我的情况下,我已经启用了https,但不确定是否是这种情况。 - Vincy

2

这里最受欢迎的答案对我没有用。我最近升级到了Windows 10(唉),当我去:

C:\Windows\System32\inetsrv

我没有收到权限弹窗。此外,当我尝试手动更改权限时,大多数选项都不可用或灰色显示。

最终的解决方法是逐个点击inetsrv目录中的每个文件夹。这样做后,我会收到每个文件夹的弹窗,从而可以获得访问权限。

重新启动 VS,问题解决!


0

有一个简单的答案。确保您以管理员身份启动VS 20xx。这对于Azure开发也是必需的。


0

尝试了所有建议,最终发现我们必须安装已默认安装应用程序兼容性数据库的IIS 10.0 Express。

截图:

程序截图


0

我遇到了类似的问题。 我还没有安装IIS。 1.我安装了IIS。 2.我使用aspnet_regiis工具(带有-i)启用了IIS上的Asp.Net。 3.尝试加载现有的Web应用程序项目。(失败并出现相同的错误) 4.我重置了IIS服务。 5.我以管理员身份打开了VS2013,并加载了现有的Web应用程序项目(成功)。 6.在IIS上创建的虚拟目录成功。

我认为关键是Aspnet_regiis IIS重置和IIS服务重置步骤。


0
Visual Studio 2015:只需以管理员身份启动Visual Studio即可,这对我来说起作用,而无需对VS或注册表进行任何更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接