无法访问 IIS 元数据库 ASP.Net

Posted

技术标签:

【中文标题】无法访问 IIS 元数据库 ASP.Net【英文标题】:Unable to access the IIS metabase ASP.Net 【发布时间】:2015-02-11 16:28:56 【问题描述】:

您好,我知道这方面有一些主题,但似乎没有一个解决方案适合我。

我有一个 ASP.Net 网站项目,我正在尝试在 Visual Studio 中加载和发布。但是,当我加载项目时,我得到了错误:

创建虚拟目录 http://localhost:xxxx 失败 错误:无法访问 IIS 元数据库。你没有 访问您机器上的 IIS 网站的足够权限。

仅当我以管理员身份运行 Visual Studio 时才会出现此错误。如果我不以管理员身份运行,则不会发生上述错误,但是当我尝试发布我的应用时,我得到:

请在管理员模式下启动 Visual Studio 以执行此操作 部署动作

看来我赢不了了!


到目前为止我所做的尝试:

取得C:/Windows/System32/Inetsrv/Config的所有权 在我的 project_name.csproj 文件中设置 <UseIISExpress>false</UseIISExpress> 回到旧的团队基础服务器检查在管理员模式下没有问题并使用该配置。 以非管理员身份运行 Visual Studio(有效,但请注意上面的第二个错误)

到目前为止,没有人有任何运气。


额外信息:

操作系统:Windows 8.1(64 位)

Visual Studio:2013

IIS:8.5

C:\Windows\System32\inetsrv\config 上的权限(只读):

    我:完全控制 管理员:完全控制

Documents/IISExpress/config 的权限(只读):

    我:完全控制 管理员:完全控制

注意“文档”在网络驱动器上

【问题讨论】:

您是否尝试过 Documents 不在网络驱动器上的位置? @Tim 我不知道如何设置它,所以它不是。 Error - Unable to access the IIS metabase的可能重复 【参考方案1】:

事实证明,我的个人文件夹被设置为网络驱动器,该驱动器偶尔会出现故障,从而导致所描述的错误。

要更改您的个人文件夹:

打开C://Windows/regedit.exe 导航到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders 将字段Personal 更改为%USERPROFILE%%USERPROFILE%\a folder of your choice

这解决了我的问题。

请注意,您可能需要将旧个人文件夹中的任何文件移至新文件夹,因为它们不会再被拾取

【讨论】:

你拯救了我的一天 就我而言,个人文件夹已更改。它被映射到可作为 N:\Documents\ 访问的网络位置,但注册表项 User Shell Folders 使用相应的 UNC 路径引用它们。更改后,注册表未相应更新。我将它们更改为 N:\Documents,这对我有用。 对我来说它也是网络驱动器!不过,我不必编辑注册表。我刚刚去了(网络映射)文档文件夹属性,在路径选项卡上有一个恢复按钮。单击它解决了元数据库问题。 非常感谢,Edd。目前整个公司网络都关闭了,所以我认为我可以离线处理我的 ASP.NET 应用程序,但是直到我将“个人”文件夹路径从某个 UNC 路径更改为“C:\users\ kh" 在尝试了所有该死的可能解决方案 3 天之后,这就是有效的方法。谢谢一吨!你是怎么发现的?我的意思是有日志可以寻找以缩小范围吗?【参考方案2】:

您是否尝试过以下修复?

这是有效的修复方法。

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

https://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

【讨论】:

【参考方案3】:

在我错误地将我的 Documents、Downloads 和 Desktop 文件夹剪切并粘贴到我的外部硬盘驱动器后,我遇到了同样的问题,它将文件夹的路径更改为 F:驱动器(外部硬盘驱动器),我复制了文件夹返回并将路径设置回本地。

将项目复制回 C:\Local Disk\Users\your_name 右键单击文件夹(不起作用),然后单击属性 例如文件 点击位置标签 将位置更改为正常,例如 C:\Local Disk\Users\your_name\Documents

这对我有用:D

【讨论】:

遇到了同样的问题。感谢您为我指明正确的方向。【参考方案4】:

也许是在黑暗中拍摄 - 但您是否尝试过从添加/删除程序安装“IIS 管理控制台”、“IIS 管理脚本和工具”和“IIS 管理服务” - 打开或关闭 Windows 功能?这可能会有所帮助。

【讨论】:

是的,我是在安装 Visual Studio 后这样做的。没有运气:(【参考方案5】:

左键单击您的项目 --> 属性。选择网络。检查项目 url 上的链接 [port]。单击创建虚拟目录。应该有帮助。

【讨论】:

我将主机和端口设置为localhost:21000,创建了运行良好的虚拟目录(同时以非管理员身份运行Visual Studio)。仍然需要成为管理员才能部署。如果我以管理员身份运行,我什至无法加载项目,因此在 VS 中右键单击它不会在上下文菜单中显示“属性”选项【参考方案6】:

第 1 步:如果 Visual Studio 打开则关闭。

第二步:打开项目文件夹,找到“.vs”文件夹,它可能被隐藏了

第 3 步:删除“.vs”文件夹

第 4 步:再次打开项目

【讨论】:

以上是关于无法访问 IIS 元数据库 ASP.Net的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 无法访问 IIS 元数据库

DLL 无法访问 IIS 内部用于 ASP.NET 应用程序的数据库

VS 2017 无法访问 IIS 元数据库

无法访问 IIS 元数据库。您没有足够的权限访问您计算机上的 IIS 网站。视觉工作室 2015

无法访问 IIS 元数据库。您没有足够的权限访问计算机上的 IIS 网站

解决ASP.NET Core部署到IIS,更新项目"另一个程序正在使用此文件,进程无法访问"