ChatGPT解决这个技术问题 Extra ChatGPT

IIS 500.19 with 0x80070005 无法访问请求的页面,因为该页面的相关配置数据无效错误

我想用 IIS 管理器在 IIS 上上传我自己的 asp.net 网站。但是当我这样做时,我收到以下错误

HTTP 错误 500.19 - Internal Server Error 请求的页面无法访问,因为该页面的相关配置数据无效

模块 IIS Web 核心通知未知处理程序尚未确定错误代码 0x80070005 配置错误由于权限不足,无法读取配置文件配置文件 \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config

我多次搜索此错误的解决方案,但没有一个解决方案解决了该错误。

我的 IUSR 帐户有问题。我在 web.config 属性的“组或用户名”中看不到此帐户。

问题是什么?

通过 Subversion 还原一些更改后,我遇到了这个问题(尽管这可能是巧合)。我注意到 Web.config 文件的 ACL 与目录 中的其他文件不同,并且它不是从它的父目录继承的。我启用了 ACL 继承,一切恢复正常。
我的解决方案略有不同。在某些 Windows Server 2008 机器上,您需要授予对“IIS_IUSRS”组的访问权限,而不是“IUSR”用户——在站点文件夹安全权限内。确保前往您的机器所在位置。
我在将站点移动到没有安装 IIS Url Rewrite 模块的服务器时遇到了这个问题。
如果您重命名了服务器,则可能会发生这种情况。我对自己做了这个 - 最终不得不进入(Windows Server 2012 R2)并重新添加 IIS APPPOOL\SiteName... 并且 100% 解决了这个问题。
如果您不熟悉在较旧的 2008 R2 服务器上部署 ASP.NET Core 应用程序,则需要Install the .NET Core Windows Server Hosting bundle - 据我所知at this answer

b
bkaid

如果站点配置为使用 IIS URL Rewrite module 但未安装,也会发生这种情况。


打的好。 如果 IIS 会抛出“我不明白 是什么”错误,而不是抱怨格式错误的 XML,那就太好了。
非常感谢 - 这也是我的问题。如果您看到 标记,则正在使用重写模块。有人会认为 IIS 可以告诉您什么是无法解析的。
解决命令行缺失依赖的好方法; webpicmd /Install /Products:UrlRewrite2
我只想指出,如果您的 web.config 包含 标记,那么您需要 rewrite 模块。
在 Windows 10 上的 IIS 10 中运行 Angular 8 应用程序时遇到了同样的问题。解决方案是从 iis.net/downloads/microsoft/url-rewrite 加载 Microsoft URL 重写。确定这是问题所在的测试是编辑我的 web.config 文件以注释掉 <rewrite>部分。注释掉该部分后,该应用程序可以正常工作,但只能浏览到根组件。安装完成后,包含路线的应用程序就可以正常工作。
M
Martin Braun

最后,我得到了解决我的问题的方法。 ASP.net 帐户没有出现在 IIS 管理器中,因为我没有在 IIS 中选中它的复选框。要在 Windows 7 中执行此操作,请执行以下步骤:

打开控制面板 点击“程序”链接(不是卸载程序) 点击“打开/关闭 Windows 功能”链接 在弹出窗口中找到“Internet 信息服务 IIS”并展开其节点 展开“万维网服务”节点 展开“Application Development Features”节点 勾选“ASP.NET”复选框 然后点击ok按钮

现在,您将在 IIS 管理器上看到 ASP.net 帐户,默认情况下您将看到 IIS 帐户。现在,您应该将您的 ASP.net 网站从“我的文档”移动到 IIS 有权访问它的另一个位置(即到您计算机上的另一个分区)。现在,从 IIS 管理器浏览您的网站,它应该可以工作了。

非常感谢 Jeff Turner 提供的解决方案。


一定有人从已经运行了几个月的服务器上删除了这个角色服务。我永远不会猜到要仔细检查。啊。
使用命令行更简单:dism /NoRestart /Online /Enable-Feature /FeatureName:IIS-ASPNET
谢谢...他们如何发布错误消息如此低的产品?
我的 部分引用了 WebDAV,一旦我将 WebDAV 功能添加到 IIS,它就可以工作了。
在 Windows 10 更新(包括对 .Net 3.5 和 4.8 的更新)之后,我遇到了这个问题。上述解决方案对我有用,是救命稻草。
K
Konrad Viltersten

该消息是说您的配置文件在某种程度上已损坏。但是它也说它实际上无法访问配置文件。所以我会忽略有关损坏/缺乏有效性的原始消息,因为这很可能只是由于缺乏授权而无法读取文件的结果。

它无法读取配置文件的原因是因为运行您的 Web 应用程序的进程没有访问文件/目录的权限。因此,您需要为运行您的 Web 应用程序的进程授予这些权限。

访问权限应该相当简单,即至少是读取,并且根据您的应用程序,可能是写入。

上面,您提到 IUSR 等不在 web.config 的属性中。如果您的意思是 IUSR 未列在文件的安全选项卡中,那么这是一件好事。不想给 IUSR 任何对 web.config 的权限。 IUSR 角色是一个匿名互联网用户。

文件 web.config 应该只能通过您的应用程序访问。

问题是您没有说明您使用的是哪个操作系统和 IIS 版本,因此很难建议采取哪些步骤。

即在 IIS 7.5 中,由于您的 ApplicationPoolIdentity 未分配权限,因此可能会出现您引用的错误消息。您的 Web 应用程序属于应用程序池,因此您需要向运行 Web 应用程序的应用程序池的操作系统帐户授予权限。通常这类似于 NetworkService,但您可能已将其自定义为在特定帐户下运行。没有更多信息,很难为您提供帮助。


我可以以编程方式授予此权限吗?请帮忙。我有同样的问题。
谢谢这也解决了我的问题。我正在使用模拟,这显然需要为模拟帐户的应用程序目录分配 READ 权限。
我不断收到“无法枚举容器中的对象。访问被拒绝。”在我允许之后
右键单击您需要授予安全权限的文件夹。这是发布应用程序的根文件夹,与您的 IIS 网站物理路径相同。从上下文菜单中选择属性,然后单击安全选项卡。编辑用户,然后添加用户。单击位置按钮并选择顶部图标(看起来像我的电脑)。在文本区域中,输入 IIS_IUSRS。反复按 OK,直到所有上下文菜单都关闭。重新启动您的网站并再次导航到它。
如果您不想弄清楚网站物理路径的权限,那就给所有人权限吧!对于所有物理文件/文件夹访问,这是一种快速且不推荐的黑客攻击。
J
John

我遇到了同样的问题,这是对我有用的解决方案。

IIS 管理器右键单击该网站编辑权限从“安全”选项卡添加用户“IIS_IUSRS”为用户“IIS_IUSRS”授予完全权限将应用程序池的标识设置为“ApplicationPoolIdentity”


我不建议将此用于生产目的。我相信 IIS_IUSRS 是一个匿名帐户,您将授予它对网站整个目录结构的完全访问权限
也节省了我的一天,因为我发现权限也是罪魁祸首,我使用了另一个 apppool 身份并且它起作用了!
M
Michael

对于 Visual Studio (VS) 开发人员:正如 Harvey Darvey、Savage 和 Snives 所暗示的,您的应用程序主机配置可能指向错误的应用程序物理路径。在 /.vs/config/applicationhost.config 中搜索 virtualDirectory 以更改物理路径(如果不正确)。

https://i.stack.imgur.com/1CvTY.png

确保物理路径正确:

https://i.stack.imgur.com/QUFiR.png


您也可以在 project => properties => project url => create virtual directory 中执行完全相同的操作,在出现提示时选择 yes 以重新映射到正确的物理路径
就我而言,它有点不同,但它给了我方向,非常感谢,它对我帮助很大:)
我在 D: 驱动器上运行我的项目并在阅读此答案后将其更改为 E: 驱动器然后我意识到物理路径已经改变。谢谢
J
JS_Diver

顺便说一句,我收到了同样的错误,我的问题很简单:我缺少 .NET Core Hosting Bundle。安装该工具并重新启动服务器后,一切正常。

您可以在此处找到在 Windows 上托管 asp.net 核心的手册:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2


仅安装 .NET Core SDK 不足以在 IIS 下运行 ASP.NET Core 网站。我花了几个小时来解决这个错误......
这可能还不够,但它确实解决了这个错误。为我工作。我曾假设所有 .NET 组件都已包含在内。
是的,必须在此处安装“Runtime & Hosting Bundle”:dotnet.microsoft.com/download/dotnet-core/2.2
好吧,“自包含”的包不辜负它的标题。
J
Jon Crowell

手掌警报:

如果配置文件的路径错误,您也会收到此错误。仔细检查它以确保在 IIS 中正确输入了物理路径。


作为这种情况的一种变体,事实证明我将路径错误地设置为站点本身。我不小心通过了映射的网络共享而不是本地系统文件路径。
有同样的脸掌时刻。我将我的网站移动到一个子文件夹,并认为我已正确地将新路径输入到 IIS 中。该站点似乎仍然在其下方显示了所有必需的文件夹等,显示在 IIS 的树中,因此它并没有触发此作为原因。我重置了权限等,没有解决。然后讨论了顺便向我建议的问题……在浪费了 1 小时的时间后,我现在又拥有了一个工作站点!
这个路径设置在哪里?这似乎是我的问题,但我找不到需要更改的内容
在开发环境中:.vs > config > applicationhost.config 当您没有对文件进行 GIT 忽略并且开发人员开始签入时,会发生这种情况。
我的物理路径中有一个额外的“\”斜线 - shesh。谢谢你
y
yoel halb

您需要为本地计算机上的 IIS_IUSRS 分配权限(但您不必为 IUSR 分配权限,事实上即使您明确拒绝权限它也会起作用)。

要分配权限,只需右键单击文件夹并在安全选项卡上确保授予正确的权限,如果用户未列出,则单击“添加”,然后输入 IIS_IUSRS(并确保在“域”下本地选择计算机,或在名称字段中输入 YourLocalComputerName\IIS_IUSRS),然后您就可以开始了。

如果您愿意,您可以代替将权限分配给 IIS_IUSRS 组,而是分配给通常应为“IIS APPPOOL\ 应用程序池名称”的应用程序池。


来自以下网站:iis.net/learn/get-started/planning-for-security/… IIS_IUSRS 组替换了 IIS_WPG 组。这个内置组可以访问所有必要的文件和系统资源,因此一个帐户在添加到该组时可以无缝地充当应用程序池身份。
仍然被拒绝访问。
u
user3069438

要解决此问题,请确保您安装了托管捆绑包。

https://i.stack.imgur.com/1xBuF.png


对我来说简单快速
也解决了我的问题。虽然我需要一个更新的版本。最新,截至 2022 年 5 月 19 日似乎是 6.0。 docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/…
T
Tanuj Gulati

我也发生了同样的事情,当您选择一个网站时,请尝试通过双击 IIS 7 右窗格上的连接字符串来检查这一点。

它会给你一个错误(网络配置文件有问题),因为你使用了 URL 重写规则并且没有安装相应的组件。

安装“Microsoft URL Rewrite Module 2.0 for IIS 7”,这应该可以解决您的问题


C
Celt

这里没有任何东西对我有用,我在另一个 SO 答案中找到了这个命令,它解决了我的问题。只需以管理员身份启动命令提示符并运行以下命令:

run->cmd

run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"

学分:用户 Vicxx


要修复我的 vs 2017 开发环境,我必须从我的 Windows 7 功能中删除 IIS。根据需要添加、更新和安装所有东西。最后一步是使用 Visual Studio 2017 命令提示符运行 regiis。现在一切都恢复正常了,花了 8 个小时来解决这个问题。哎呀。。
F
Frederik Struck-Schøning

嗯。我已将我的站点/文件移动到另一个文件夹。无需更改 IIS 网站中的路径。

你们现在可能都笑了。


M
MrNams

安装 ASP.NET Core 模块

使用以下链接下载安装程序:https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer


必须把它下来才能让我的 api 工作。
如果您正在运行 ASP Core 5.0(或更高版本,大概),这就是您所需要的
s
shA.t

我在 Windows Server 2012、IIS 8.5 中执行这些步骤来解决此问题。也应该适用于其他版本。

转到服务器管理器,单击添加角色和功能在角色部分中选择:Web 服务器在安全子部分下选择所有内容(我排除了摘要、IP 限制和 URL 授权,因为我们不使用它们)在应用程序开发下选择 .NET 可扩展性4.5、ASP.NET 4.5 和两个 ISAPI 条目 在功能部分中选择:NET 3.5、.NET 4.5、ASP.NET 4.5 在 Web 服务器部分中选择:Web 服务器(全部)、管理工具(IIS 管理控制台和管理服务) , 窗户


服务器管理器在哪里?我使用 Windows 10,iis v 10
w
w00ngy

尝试安装本SO中提到的 IIS 的“应用程序开发”子组件

在搜索框中单击“开始按钮”,输入“打开或关闭 Windows 功能”

在功能窗口中,单击:“Internet 信息服务”

点击:“万维网服务”

点击:“应用程序开发功能”

检查(启用)这些功能。我检查了除了 CGI 之外的所有内容。

https://i.stack.imgur.com/ikyC0.png


J
Jeff Turner

确保您已将应用程序池设置为正确的框架版本。您还需要确保您的 aspnet、IIS_IUSRS 或 IUSR 用户具有对应用程序目录的读取权限。


我怎样才能做到这一点?? “确保您的 aspnet 或 IUSR 用户具有对应用程序目录的读取权限”
转到 C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\ 并确保 WebSite5 目录对 IUSR 和 IIS_IUSRS 组具有读取权限。您可以通过右键单击目录并选择属性,然后转到安全选项卡来执行此操作。
但我在组或用户名中没有看到 IUSR 和 IIS_IUSRS 组!!我不知道是什么问题??
你看到网络服务的选项了吗?默认情况下,这是您在桌面上工作时应用程序池将使用的(如果我没记错的话)
当您转到安全选项卡时,在您右键单击文件夹并选择属性后。单击“添加”按钮,该按钮应生成另一个带有“编辑”按钮的窗口。单击“编辑”按钮并在文本框中输入“网络服务”,它应该找到用户并将其添加到列表中。然后确保用户至少具有读取权限。
v
valen

为我解决此问题的另一种可能性:

IIS -> 编辑权限 -> 安全选项卡 -> 授予“用户”适当的权限(或 IIS_IUSRS,取决于您的设置)


t
theJerm

当我在 web.config 文件和 IIS 网站中都指定了同名的默认文档(如 index.aspx)时,这也发生在我身上。我最终从 IIS 网站上删除了该条目,并保留了 web.config 条目,如下所示:

<system.webServer>
  <defaultDocument>
    <files>
      <add value="index.aspx" />
    </files>
  </defaultDocument>...

e
eagle779

有时,此消息可能缺少 IIS 环境中的组件,例如特定框架或动态压缩等 IIS 功能,而不是 web.config 的权限。

如果是这种情况,解决方案可以是安装和使用 Microsoft 平台安装程序并安装那些缺少的组件 - 您可能必须仔细检查到底缺少什么,因为错误日志和消息没有告诉您。


注意:动态压缩在“Windows 功能”列表中,而不是 MPI
@Simon_Weaver 实际上动态压缩在 MPI 将为您安装的内容列表中,并且自 2012 年以来一直存在,甚至可能在此之前。干杯。
A
Ahmad

实际上,任何缺少的模块都可能导致这个问题。就我而言,它是 CORS Module。因此,请阅读 web.config 并寻找您在其中指定的任何插件模块并检查它是否已安装,或者以其他方式安装它。不幸的是,错误消息根本无助于发现问题。


S
SownRocker

您需要为您的网站文件夹设置权限或将它们复制到 wwwroot 文件夹:) - 如果设置权限,有 2 种方式:+ 右键单击您的网站文件夹 + 或右键单击 IIS 中的您的网站 => 选择编辑权限并添加权限(IUSR - 默认 iis 用户)祝你好运 ;-)


在我的情况下 - iis 8,它是经过身份验证的用户。
c
chengbo

就我而言,它是由应用程序物理路径指向 IIS 中不存在的文件夹引起的。

https://i.stack.imgur.com/AVxq6.png


R
Rob Sedgwick

映射驱动器出现此问题,IIS 不适用于映射驱动器。只需使用未映射的驱动器。


D
DanO

当我从 prod 复制我的 web.config 文件时遇到了问题,更改了与 prod 无关的所有内容,除了重写为 httpS 的重写规则。

删除了这些规则并运行良好。


O
OnResolve

很简单,IIS 无权访问您的 web.config。我会先将该网站从您的文档文件夹中取出。验证它是否也具有 r/w 权限。


我将网站从 Document 移动到另一个地方,但出现相同的错误
M
Munna Singh

我也有类似的问题,我通过评论 web.config 文件中的某些部分来修复它。

该项目早期是在 .Net 2.0 中构建和部署的。迁移到 .Net 3.5 后,它开始抛出异常。

决议:

如果您的配置文件包含“


C
Community

如果您的 web.config 文件中有语法错误或问题,您可能会收到此错误。

对我来说,这是我在 AppSettings 中使用的流浪 ampersand in a URL


我还通过连接字符串中的密码得到了这个,它有一个 & - 将它编码为 &让我解决了这个问题。谢谢,这是这里唯一与权限无关的答案。
k
kbbucks

在 IIS 7.5 错误页面上,您会点击页面底部的“查看更多信息”,在这种情况下,您会转到以下 Microsoft 链接:

http://support.microsoft.com/kb/942055

0x80070005 错误代码似乎与权限相关,并按照解决方案 2 中的步骤,方法 2 分配具有相关文件夹权限的正确帐户应该修复它 - 我花了 3 天时间寻找解决方案,直到我遇到它,然后立即工作。


R
Rahul Sonone

探索您的网站所在的文件夹,您会看到一个额外的文件夹“aspnet_client”删除该文件夹,它会为您工作。

我试过这个我的问题解决了。

如果它对您有用,请将其作为答案,以便其他机构也能得到解决方案。


L
Luca Steeb

这些都不适合我,但我终于有了一个适合我的解决方案:

在 web.config 中删除这一行:

<compilation debug="true" targetFramework="4.5"/>

不要删除此行

<compilation debug="true"/>