安装Visual Studio 2012并打开我的解决方案后,我收到一系列错误:
Web应用程序项目Foo配置为使用IIS 无法访问IIS元数据库。您没有足够的权限访问计算机上的IIS网站。
我为每个Web应用程序都提供了这个。我尝试过的事情:
这些似乎是这个问题的常见解决方案,但我没有取得任何成功。还有什么我可以尝试做的吗?
答案 0 :(得分:1420)
在 Windows 8 Pro :
上%systemroot%\inetsrv\config
在 Windows 7和8.1和10
上%systemroot%\System32\inetsrv\config
(%systemroot%
通常为C:\Windows
)
在Windows资源管理器中导航到上面的相应位置。您将使用弹出窗口阻止访问:
“您无权访问此文件夹 - 点击”继续以永久访问此文件夹“
单击此文件夹的“继续”,然后单击下面的“导出”文件夹。我将快捷方式更改回“以我身份运行”(域和本地管理员的成员)并能够打开并部署解决方案。
答案 1 :(得分:244)
我认为您没有使用管理员权限运行visual studio。看看:
http://bloggingabout.net/blogs/rick/archive/2012/10/04/unable-to-access-the-iis-metabase.aspx
引用
解决方案很简单:使用“运行方式”启动Visual Studio 管理员“。您可以通过右键单击快捷方式来执行此操作 选择“以管理员身份运行”。
答案 2 :(得分:49)
我认为我们在工作中遇到了类似的问题。对我们来说,解决方案是进入控制面板 - >程序和功能 - >打开或关闭Windows功能......在其中,我们必须选择Internet信息服务 - >网络管理工具 - > IIS 6管理兼容性 - > IIS Metabase和IIS 6配置兼容性。
尝试一下,让我知道它是否有帮助!
注意:我们使用Visual Studio 2005和2010在Windows 7上运行IIS 7.5并使用超老派Web服务(.asmx)进行操作......
答案 3 :(得分:33)
我通过向%systemroot%\inetsrv\config
答案 4 :(得分:27)
如果您正在处理不需要使用IIS的项目,那么使用此错误打开项目的解决方法是只需右键单击卸载的项目并单击编辑,搜索:
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="">
<WebProjectProperties>
<UseIIS>True</UseIIS>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>
并将USEIIS设置为false
<UseIIS>False</UseIIS>
在保存更改后右键单击项目重新加载项目。
答案 5 :(得分:18)
我有两种单独的问题会导致此错误,并认为我会分享...
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在我的文档中,并且它不存在或无法访问。
答案 6 :(得分:12)
我有这个问题 - 症状是一样的,但我遇到的问题是我已经设置了&#34;我的文件&#34;要在网络共享上的文件夹,并且无法访问该共享。
根本问题是无法访问位于%USERPROFILE%\ Documents的IIS配置文件。一旦我改变了我的文件&#34;文件夹位置(我修改了reg值),它又开始工作了。
我知道这可能不是您可能遇到的常见情况,但我已在此处发布,因为它会出现相同的症状。
答案 7 :(得分:12)
感谢所有回答的人。由于这已经关闭了很长时间,我无法提供太多反馈,但我最终解决了我的问题。我尝试了很多这些其他解决方案而且他们没有解决我的问题,但我确信他们会在根本原因不同时提供帮助。
我的解决方案
我通过在Windows 7中关闭IIS和.Net Framework功能然后重新打开它来解决了这个问题。似乎这次重新安装是解决我的问题的原因。我仍然不知道导致问题的原因,但我团队中至少有一位其他开发人员遇到了同样的问题。
答案 8 :(得分:12)
在Windows 81上,从管理员命令提示符处,使用:
icacls "C:\Windows\System32\inetsrv\config" /t /grant "IIS AppPool\DefaultAppPool":(R)
然后返回VS,右键单击失败的项目,选择Reload。
答案 9 :(得分:10)
导航到文件夹:%systemroot%\System32\inetsrv\config
会显示一个安全对话框。单击继续,这可能会解决此问题。这适用于两台独立的Win 10 / VS 2017 / IIS计算机。
答案 10 :(得分:7)
您可能遇到此问题并遇到与我相同的问题。我之前“解决”了它,然后断电,计算机崩溃,不知道为什么注册表设置还原,但它是我的问题的 SOURCE 。
决定再次修复注册表。
无法以管理员身份打开注册表(由于问题不在于gpedit.msc管理模板,因此需要访问注册表)
桌面上的UnHookExec.inf
只需保存UnHookExec.inf并右键单击并选择安装即可安装。安装文件不会显示任何弹出或通知框。 http://www.tweakandtrick.com/2011/04/enable-regedit-registry-editor.html
(从<script type="text/javascript">
function configModal() {
$(".clickable-row").click(function() {
var row = $(this)
var modal = $('#notificationModal');
var title = row.find('td').find('a').html();
var html = row.find('.notification-content').html();
var notificationId = row.attr('id');
modal.find('.modal-body').html( html );
modal.find('.modal-title').html( title );
modal.find('#modal-form').find('input[name=id]').attr('value', notificationId)
modal.find('#modal-form').find('input[name=isDeleted]').attr('checked', row.hasClass('deleted'));
modal.modal();
$.post("${createLink(controller: 'notification', action: 'update')}",
{ id : notificationId, isRead : true },
function() { row.addClass('read'); });
});
}
$(document).ready(configModal);
</script>
更改为\\cs2data\home\stickelt\my documents
)
现在 ALL很好并且Visual Studio打开了包含15个项目的解决方案并连接到IIS并且没有抱怨无法访问iis元数据
我之前从未遇到过这个问题,因为当前工作中没有人遇到过这个问题(许多人已经在这里待了很长时间,有些人得到了其他机器的克隆“工作”而且很多人都在另一个域等等。)
答案 11 :(得分:7)
今天我遇到了这个并通过从Project文件中删除IISUrl来解决问题:
删除以下行:
<IISUrl>http://localhost:xxxxx </IISUrl>
重新加载项目
答案 12 :(得分:6)
我今天刚遇到这个问题,我发现我没有打开VS作为“以管理员身份运行”。 在这之后,我能够发布服务。
答案 13 :(得分:4)
如果您具有管理员权限,请右键单击Visual Studio图标&gt;属性然后高级,“以管理员身份运行”检查。 您可以直接以管理员身份运行visaul studio。 这样,正式和基本。
答案 14 :(得分:3)
更改此密钥对我有用:
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Shell Folders \ Personal
该位置不存在。
答案 15 :(得分:3)
除了@nologo的answer之外,我还必须使用IIS。所以我改变了
<UseIIS>True</UseIIS>
首先到'假'。
答案 16 :(得分:2)
你还可以尝试一下:
我倾向于永远不会关闭我的机器,因此我有很多人在等待重启。并修复了它。
答案 17 :(得分:2)
这似乎是“所有错误导致此消息”类型的错误之一。
我的应用程序池刚刚关闭。我把它重新打开了,一切正常。
答案 18 :(得分:2)
我尝试了以上所有方法。归功于上述所有回复。在我们自己尝试了所有建议之后,我只是按照对我有意义的顺序汇总了这些建议组合。请注意我的Documents文件夹位于共享驱动器上。除非您在同一条船上,否则不能使用subst / IISExpress。
C:\windows\system32\inetsrv\
rmdir /s c:\windows\system32\inetsrv\
以完全删除上次安装的所有痕迹。保持高架cmd提示打开以供日后使用。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抱怨它。
subst U: c:\Temp
。创建C:\Temp\Documents\
并从我的U盘复制IISExpress文件夹。CustomUserHome
HKCU\Software\Microsoft\IISExpress
中创建了C:\Temp\Documents\IISExpress
个密钥
subst
命令。别在意。在丢了3次并花费大约6个小时后,我可以在Visual Studio(2015 Update 2)中打开Web项目。
答案 19 :(得分:2)
转到项目的根目录并找到以下文件:
YourProjectName.csproj.user - 在其中,确保 UseIISExpress 设置为 false :
<UseIISExpress>false</UseIISExpress>
如果单独不起作用,请尝试以下操作并再试一次:
YourProjectName.csproj - 在主项目文件中,确保将 UseIIS 和 UseIISExpress 设置为 false :
<UseIIS>True</UseIIS>
<UseIISExpress>false</UseIISExpress>
更改后,我可以再次加载项目。
注意:请确保以管理员身份运行VS,如其他答案中所述。
答案 20 :(得分:2)
我也有类似的问题。我的解决方案是对“以管理员身份运行”的答案的扩展,我希望有人可能会觉得有用。
我正在运行VS2012,几乎每次我都必须执行右键单击,以管理员身份运行。我厌倦了这一点,所以我进入了快捷方式的属性,单击高级,然后单击“以管理员身份运行”选项。现在,当我从该快捷方式打开时,VS2012始终以管理员身份运行。
来自该快捷方式位非常重要。我继续分支我的项目,并将分支下载到新的本地文件夹。然后,当我从快捷方式打开它时我没有问题。但是,如果我直接进入该文件夹,并在本地运行项目没有快捷方式,它没有以管理员身份运行,我收到了此错误。
一旦我像往常一样打开VS2012,然后使用文件/打开/项目它再次工作没有问题。 (因为我是以管理员身份运行的)。但是当我使用Windows文件管理器打开解决方案时,我没有以管理员身份运行。
其他建议看起来有点极端,但这很简单,所以我倾向于先尝试一下。
希望这有用。
答案 21 :(得分:1)
我修复了Visual Studio 2015来解决这个问题。 修复需要很长时间,但它解决了这个问题,而上面的大部分都没有。我正在运行Win 7企业。
答案 22 :(得分:1)
我在this link添加功能之后遇到同样的问题我跟着this article问题就消失了。
答案 23 :(得分:1)
打开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 :(得分:1)
答案 25 :(得分:1)
我今天和我有同样的问题。我发现它很烦人。虽然我已经从同一个IIS开发了其他两个网站,但仍然无法创建新网站。很奇怪,但我做到了。
除了我所说的以外,你不需要关闭/重新安装任何其他东西。
让我知道是否有人像我一样有同样的问题并以同样的方式解决。我认为这不是问题,而是在本地主机上创建网站的错误方法,Visual Studio拒绝将其打开。
我希望这会对新手有所帮助。
答案 26 :(得分:0)
在我的情况下,只有帮助我的是重新安装(或修复更容易)IIS 10.0 Express
答案 27 :(得分:0)
运行命令:
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
答案 28 :(得分:0)
IIS Express用户-在网络共享上使用我的文档
如果IIS Express application.config
位于网络驱动器上,请确保该驱动器已映射并连接到“我的电脑”中。
我遇到了这个问题,当我在“我的电脑”中重新映射网络驱动器时,问题已解决。
答案 29 :(得分:0)
在Visual Studio 2015中: 我将.csproj文件中的UseIIS更改为false,它对我有用。
<UseIIS>False</UseIIS>
答案 30 :(得分:0)
我在Windows 10 Professional 64位计算机上遇到过这种情况,这里发布的其他答案都没有帮助。它在我经历了蓝屏死机后开始发生,我发现UAC已经重新开启了。仅作为管理员运行Visual Studio不是解决方案,因为我的源控件位于网络驱动器上,Visual Studio无法使用UAC访问该驱动器。
通过GPEDIT关闭UAC解决了问题。
答案 31 :(得分:0)
我遇到了同样的问题。对我而言,我使用的文档与以前的Windows安装文件相同。只需从我的文档中删除IISExpress文件夹就可以了。
答案 32 :(得分:0)
您可以通过实际取消选中Windows功能列表中的IIS工具来解决此问题。然后,修复Visual Studio 2013安装并确保选中Web Developer。它将安装IIS 8,VS可以很好地工作。
答案 33 :(得分:0)
我正在使用Win 8 Pro和VS 2013。 在尝试了此页面中的所有内容后...我只是重新安装了IIS Express 8,现在一切正常(即使没有以管理员身份运行)。
我的结论是,这是一个相当普遍的错误,并且存在多种根本原因。
答案 34 :(得分:0)
我有类似的问题。 Visual Studio不会加载任何Web项目并显示错误:创建虚拟目录&lt; myproj:myport&gt;失败。无法访问IIS元数据库。
在我的情况下,实际上IISExpress是问题的根源。右键单击控制面板中“程序和功能”中的“IIS Express”并选择“修复”,可在不到两分钟的时间内解决问题。
答案 35 :(得分:0)
在我的邮件中,除了抱怨“无法访问IIS元数据库”之外,还提到无法访问"<IISUrl>http://localhost:6416/</IISUrl>"
。右键单击卸载项目,单击编辑,找到行"<IISUrl>http://localhost:6416/</IISUrl>"
,将其注释掉。重新加载它应该工作。这与管理员无权访问该地址有关。
答案 36 :(得分:-1)
创建一个新的网站,在错误转到你创建项目的文件夹后,在txt应用程序中打开.csproj文件,找到这个标签&#34; <UseIIS>
&#34;并改变&#34; false&#34; to&#34; true&#34;,在下面的行中找到标签&#34; <IISUrl>
&#34;然后把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>