关于c#:错误 – 无法访问IIS元数据库

Error - Unable to access the IIS metabase

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

The Web Application Project Foo is configured to use IIS.
Unable to access the IIS metabase. You do not have sufficient privilege to access IIS web sites on your machine.

我为我们的每个Web应用程序都得到了这个。我尝试过的事情:

  • 以管理员身份运行Visual Studio
  • 运行aspnet_regiis.exe-ga myusername
  • 运行aspnet_regiis.exe-i
  • 这些似乎是解决这个问题的常用方法,但我对它们还没有取得任何成功。我还能做什么吗?


    在线的Windows 8专业版:

    1
    %systemroot%\inetsrv\config

    在Windows 7和8和10

    1
    %systemroot%\System32\inetsrv\config

    (通常是在%systemroot%C:\Windows)

    在适当的位置上navigate在Windows资源管理器。你可以访问它的变化与弹出说:

    "You don't have access to this folder - Click continue to permanently get access to this folder"

    点击"继续"这个文件夹和文件夹下面的出口。我改变了"快捷方式"运行,回我的"(域和本地管理员的成员),是能够在开放和部署的解决方案。


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

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

    引用

    The solution to this is simple: start your Visual Studio with"Run as
    Administrator". You can do this by right clicking the shortcut and
    selecting"Run as Administrator".


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

    试试看,如果有用的话告诉我!

    注意:我们正在使用Visual Studio 2005和2010在Windows 7上运行IIS 7.5,并使用超旧版本的WebServices(.asmx)进行操作…


    我通过向%systemroot%\inetsrv\config授予IIS应用程序池标识权限解决了这个问题。


    如果你的工作项目,不需要使用IIS,然后在打开的项目(workaround这个错误是正确的,简单的点击和点击已卸载的项目:编辑的话,搜索

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <ProjectExtensions>
        <VisualStudio>
          <FlavorProperties GUID="">
            <WebProjectProperties>
              <UseIIS>True</UseIIS>
            </WebProjectProperties>
          </FlavorProperties>
        </VisualStudio>
      </ProjectExtensions>
    </Project>

    useiis和集到的假

    1
    <UseIIS>False</UseIIS>

    通过对该项目的clicking重装后保存在它的变化。


    我有两个问题导致这种类型的错误,并想我分享……

    1
    2
    3
    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的东西把我的文档中的文件或目录,具有很combinee lousy错误消息。在上述两个案例的关键问题是,在我的配置文件iisexpress去和它的文件,或者不存在,或是不能访问的。


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

    我的解决方案

    我通过关闭Windows7中的IIS和.NET框架功能,然后重新打开它们来解决这个问题。看来这次重新安装解决了我的问题。我仍然不知道是什么导致了这个问题,但是我的团队中至少有一个开发人员有同样的问题。


    在Windows 81上,从管理命令提示下,使用:

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

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

    归功于:iis7权限概述-应用程序PoolIdentity


    我有这个问题——症状是一样的,但问题是我把"我的文档"文件夹设置在网络共享上,共享不可访问。

    根问题是位于%userprofile%documents的IIS配置文件不可访问。一旦我更改了"我的文档"文件夹的位置(我修改了注册表值),它就重新开始工作。

    我知道这可能不是一个常见的场景,你可能会遇到,但我把它贴在这里,因为它会产生相同的症状。


    导航到文件夹:%systemroot%\System32\inetsrv\config显示一个安全对话框。单击"继续",这可能会解决问题。这在两台单独的Win 10/vs 2017/IIS机器上起作用。


    你可能会遇到这个问题,和我有同样的问题。我以前"解决"过它,然后停电,计算机崩溃,不知道为什么注册表设置恢复,但它是我的问题的根源。

  • 我试过所有的行政管理人员
  • 所有IIS/IIS Express都将重新安装。
  • 各种"黑客"
  • 归根结底是必须重新修复注册表。

  • 无法以管理员身份打开regedit(需要访问注册表,因为gpedit.msc管理模板不存在问题)

  • 桌面上的unhookexec.inf

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

  • 指向非现有文件共享的HKEYU CURRENTSOFTWAREMicrosoftWindowsCurrentVersionExplorerUser Shell FoldersPersonal。把它改成本地路径为我解决了这个问题。–Pasi Savolainen 7月14日8:41
  • (由\\cs2data\home\stickelt\my documents改为c:\dev)

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

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


    我今天遇到这个问题,通过从项目文件中删除iisurl来解决这个问题:

  • 右键单击项目
  • 单击编辑
  • 删除以下行:

    1
     <IISUrl>http://localhost:xxxxx </IISUrl>
  • 再加载工程

  • 现在,通过右键单击项目>属性>Web并选择使用本地IIS Web服务器(取消选中使用IIS Express)并单击创建虚拟目录按钮,添加新的IIS虚拟目录。

  • 我只和我发现这问题今天我才开的运行与管理。在这样做,我是能够发布的服务。


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


    更改此密钥对我有效:

    hkey_current_usersoftwaremicrosoftwindowscurrentversionexploreruser shell folderspersonal

    位置不存在。


    此外,通过nologo答案",我也不得不使用IIS。所以我改变了的

    1
    <UseIIS>True</UseIIS>

    "假"第一。

    • 该解决方案是受到与ensured项目可能被加载。
    • 这是和关闭Visual Studio解决方案实例
    • 改变了对"真实"的价值
    • 开放式的解决方案。这个时间,我没有得到任何错误/警告。我也可以用Ctrl + F5 F5运行没有任何问题,或是在我的项目到一mapped IIS网站。


    一个更多的东西:你可以试试

    • 如果你有一个Windows更新检查的申请。
    • 如果你在想什么的人,请重新启动。

    我永远不会关的趋势下对我的机器,所以我有很多他们等待的是重新启动。这是和固定它。


    这看起来像一个"所有这些错误导致这种类型的错误的消息"。

    为应用程序池),我就灭了。我回来了,和一切工作的罚款。


    我尝试了上面的一切。以上所有的回答都是值得称赞的。在自己尝试了所有建议之后,我只是按照对我有意义的顺序将这些建议组合在一起。注意:我的文档文件夹在共享驱动器上。SUBST/IISExpress资料不适用,除非你在同一条船上。

    • 配置vs以管理员身份运行
    • 通过添加/删除程序、Windows功能卸载IIS
    • 重新启动
    • 运行winrar或类似于admin和archive的东西C:\windows\system32\inetsrv\
    • 以admin和rmdir /s c:\windows\system32\inetsrv\的身份运行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

    另外,因为我的文档文件夹在共享驱动器上,所以我遇到了IIS Express问题。我不使用/不喜欢IIS Express,但Visual Studio对此提出了抱怨。

    • 在提高的命令提示下,运行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中打开Web项目(2015更新2)。


    我也有类似的问题。我的解决方案是对答案"以管理员身份运行"的扩展,我希望有人会发现这一点有用。

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

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

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

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

    希望这是有帮助的。


    转到项目的根目录并找到以下文件:
    BR/>您的projectname.csproj.user-在其中,确保useiisexpress设置为false:

    1
    <UseIISExpress>false</UseIISExpress>

    < BR>

    如果仅此方法无效,请尝试以下方法并重试:

    yourprojectname.csproj-在主项目文件中,确保useiis和useiisexpress都设置为false:

    1
    2
    <UseIIS>True</UseIIS>
    <UseIISExpress>false</UseIISExpress>

    < BR>在更改这些之后,我可以再次加载项目。

    注意:如其他答案中所述,确保以管理员身份运行您的vs。


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

    • 从IIS中删除网站
    • 创建新网站,给它命名为"新网站"
    • 选择站点名称本身以外的应用程序池。所以不会弄乱默认设置。
    • 如果从同一台计算机运行IP,则保持其"未分配"
    • 给它一些没用的端口
    • 右键单击vs可执行快捷方式,以"以管理员身份运行"的身份运行Visual Studio。
    • 你完了!

    你不需要关闭/重新安装任何东西,除了我所说的,因为它工作。

    如果有人和我一样有同样的问题,请告诉我,并以同样的方式解决。我认为这不是问题,而是在本地主机上创建网站的错误方式,Visual Studio拒绝打开。

    我希望这对新手有帮助。


  • 创建"devenv.exe"的快捷方式
  • 选择快捷方式的"以管理员身份运行"选项
  • Doble点击捷径重新打开你的项目

  • 打开Visual Studio命令提示符下的命令和运行和类型

    1
    aspnet_regiis -ga machinename\ASPNET

    运行上述命令后,在IIS复位和测试程序,解决了你的问题。

    如果上面的命令不是解决问题,然后你试着运行下面的命令visual studio command prompt:-

    1
    aspnet_regiis -i

    另一方面,我们可以运行在Windows的命令提示符的命令也来自我们的

    去开始菜单和点击和开放的OK润和回车键

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

    复位后,在IIS和测试程序,解决你的问题


    在从这个链接添加了特性之后,我遇到了同样的问题,随后我跟踪了这篇文章,问题就消失了。


    我修复了Visual Studio 2015来解决这个问题。修理花了很长时间,但解决了这个问题,而做了上述大部分工作却没有。我正在运行Win 7 Enterprise。


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

    这是在我的案例,其实这是在iisexpress根的问题。IIS中的右clicking在线程序和特征表示在控制面板中选择固定和修复的问题,少于两分钟。


    关于我的消息,在complaining"无法访问IIS元数据库",它也不能"http://localhost:6416/"mentions访问。右点击"卸载"的项目,点击编辑,线"http://localhost:6416/",评论它。重新加载和它应该工作。这已经不是做与管理员允许访问一个地址。


    我用Win 8 Pro和VS的2013年。在这个网页后,自己的一切……我就是reinstalled IIS Express现在8和一切(甚至没有运行厂精细管理的一种)。

    我的结论是,这是错误的,而不是一般的和有多个根的原因。


    IIS Express用户-在网络共享上使用我的文档

    如果您的IIS Express application.config位于网络驱动器上,请确保该驱动器已映射并连接到我的计算机中。

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


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


    我在一台Windows10专业版64位计算机上体验到了这一点,这里发布的其他答案都没有帮助。它是在我经历了死亡的蓝屏之后开始的,我发现UAC已经重新启动了。单独以管理员身份运行Visual Studio并不是解决方案,因为我的源代码管理位于网络驱动器上,而Visual Studio无法使用上的UAC访问该驱动器。

    通过gpedit关闭UAC修复了问题。


    在我的情况下,唯一帮助我的是重新安装(或更容易修复)IIS10.0Express


    运行命令:

    1
    2
    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

    您可以通过取消选中Windows功能列表中的IIS工具来解决此问题。然后,修复您的Visual Studio 2013安装,并确保已选中Web Developer。它将安装IIs8,Vs可以很好地工作。


    创建一个新网站,出错后转到创建项目的文件夹,在一个txt应用程序中打开.csproj文件,找到这个标签"EDOCX1"〔0〕并将"false"改为"true",在下面的行中找到标签"EDOCX1"〔1〕然后放入IIS URL(在IIS中查找URL),您的标签必须如下所示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <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>