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




.net (20)

在安装Visual Studio 2012并打开我的解决方案后,我收到一系列以这种形式出现的错误:

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

我为我们的每个Web应用程序获得这个。 我已经尝试过的事情:

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

这些似乎是这个问题的常见解决方案,但我还没有取得任何成功。 还有什么我可以尝试做的?


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

感谢所有回答的人。 由于这是关闭了很长时间,我无法提供很多反馈,但我最终确实解决了我的问题。 我尝试了许多其他解决方案,但他们没有解决我的问题,但我确定他们在根本原因不同时提供帮助。

我的解决方案

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


Windows 8 Pro上

%systemroot%\inetsrv\config

Windows 7和8.1和10上

%systemroot%\System32\inetsrv\config 

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

在Windows资源管理器中导航到上面的相应位置。 你将被阻止进入,并弹出一个说:

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

点击此文件夹的“继续”,然后点击下方的导出文件夹。 我将快捷方式更改为“以我身份运行”(域和本地管理员的成员),并能够打开和部署该解决方案。


在Windows 81上,从管理员命令提示符处使用:

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

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

信贷: IIS7权限概述 - ApplicationPoolIdentity


如果您拥有管理员权限,请右键单击Visual Studio图标>属性,然后选择高级,“以管理员身份运行”检查。 您可以直接以管理员身份运行visaul studio。 这样,正式和如此基本。


如果您正在开发一个不需要使用IIS的项目,那么打开带有此错误的项目的解决方法是只需右键单击卸载的项目,然后单击编辑,搜索:

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>

并将USEIIS设置为false

<UseIIS>False</UseIIS>

在保存更改后通过右键单击它来重新加载项目。


我也有类似的问题。 我的解决方案是对“以管理员身份运行”解决方案的扩展,我希望有人可能会发现它有用。

我运行的是VS2012,几乎每次我必须执行右键单击,以管理员身份运行。 我厌倦了这个,所以我进入了它的属性的快捷方式,点击高级,然后点击“以管理员身份运行”选项。 现在VS2012总是以管理员身份运行,只要我从该快捷方式打开它。

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

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

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

希望这有帮助。


我今天刚刚遇到了这个问题,并且发现我没有以“以管理员身份运行”的方式打开VS. 这样做后,我能够发布服务。


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

  1. 右键单击项目
  2. 点击修改
  3. 删除以下行:

     <IISUrl>http://localhost:xxxxx </IISUrl>
    
  4. 重新加载项目

  5. 右键单击“项目”>“属性”>“Web”,然后选择“使用本地IIS Web服务器(取消选中使用IIS Express)”并单击“创建虚拟目录”按钮,以添加新的IIS虚拟目录。

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

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


我在Windows 10 Professional 64位机器上遇到过这个问题,并且在这里发布的其他答案都没有帮助。 它在我经历了蓝屏死亡之后开始发生,并且我发现UAC已经改变了自己。 单独以管理员身份运行Visual Studio不是解决方案,因为我的源代码管理器位于网络驱动器上,Visual Studio无法使用UAC访问该网络驱动器。

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


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

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

在投入3次后花费大约6个小时,我可以在Visual Studio(2015 Update 2)中打开Web项目。


我有同样的问题。 对我来说,这是我使用与以前的Windows安装相同的文档。 简单地从我的文档中删除IISExpress文件夹就行了。


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

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


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

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

注意:我们使用Visual Studio 2005和2010在Windows 7上运行IIS 7.5,并使用超级老派的WebServices(.asmx)进行操作。


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


打开visual studio命令提示符并键入下面的命令并运行

aspnet_regiis -ga machinename\ASPNET

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

如果上述命令无法解决您的问题,请尝试在visual studio command prompt:-运行以下命令visual studio command prompt:-

aspnet_regiis -i

或者,我们也可以在Windows命令提示符下运行上述命令

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

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

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


改变这个键对我有用:

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Shell Folders \ Personal

该位置不存在。


还有一件事你可以尝试:

  • 检查您是否有未决的Windows更新。
  • 如果你这样做,请在尝试其他事情之前重新启动。

我倾向于永远不关闭我的机器,所以我有很多人在等待重启。 并修复它。


这看起来就像那些“所有错误导致此消息”类型的错误之一。

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





iis