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

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

HTTP错误500.19 -内部服务器错误 访问,因为该页的相关配置数据为 无效的< / p >

模块 IIS Web核心
# EYZ0未知< br > 处理程序尚未确定
# EYZ1 # EYZ0 < br > 配置错误由于权限不足无法读取配置文件
配置文件 \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config

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

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

有什么问题吗?

992404 次浏览

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

很简单,IIS不能访问你的web.config。首先,我要把这个网站从你的文档文件夹中拿出来。验证它是否具有r/w权限。

最后,我有解决问题的办法了。ASP.net帐户没有出现在IIS管理器中,因为我没有在IIS中选中它的复选框。要在Windows 7中做到这一点,请遵循以下步骤:

  1. 打开控制面板
  2. 点击“程序”链接(不是卸载程序)
  3. 点击“打开/关闭窗口功能”链接
  4. 在弹出窗口中找到“Internet信息服务IIS”并展开其节点
  5. 展开“World Wide Web Service”节点
  6. 展开“应用程序开发功能”节点
  7. 选中“ASP. ASP.”的复选框。网”
  8. 然后点击ok按钮

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

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

该消息说您的配置文件以某种方式损坏了。然而,它也说它实际上不能访问配置文件。所以我忽略了关于损坏/缺乏有效性的原始消息,因为这很可能只是由于缺乏授权而无法读取文件的影响。

它不能读取配置文件的原因是因为运行web应用程序的进程没有访问文件/目录的权限。所以你需要给运行你的web应用的进程那些权限。

访问权限应该相当简单,即至少是,根据你的应用,可能是

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

文件. config应该只有可以通过应用程序访问。

问题是你还没有说你正在使用哪个操作系统和IIS版本,所以很难建议采取哪些步骤。

例如,在iis7.5中,您引用的错误消息很可能是由于您的ApplicationPoolIdentity没有被分配权限而发生的。您的web应用程序属于一个应用程序池,因此您需要给您的web应用程序池运行的操作系统帐户权限。通常这类似于NetworkService,但您可以自定义它以在特定的帐户下运行。没有更多的信息,很难帮助你。

您需要为本地机器上的IIS_IUSRS分配权限(但是您不必为IUSR分配权限,事实上即使显式地拒绝权限,它也会工作)。

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

如果你愿意,你可以不把权限分配给IIS_IUSRS组,而是分配给应用程序池,通常应该是“IIS APPPOOL\ 应用池名称”。

当我在我的web中指定了一个同名的默认文档(如index.aspx)时,也发生了这种情况。配置文件和我的IIS网站。我最终从IIS网站上删除了该条目,并保留了网站。配置条目如下:

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

另一个解决这个问题的方法是:

给“用户”适当的权限(或IIS_IUSRS,取决于你的设置)

有时这条消息可能是您的IIS环境中缺少的组件,例如某个特定的框架,或IIS特性(如动态压缩),而不是web.config的权限。

如果是这种情况,一种解决方案是安装和使用微软平台安装程序,并安装那些缺失的组件——您可能不得不尝试一下究竟缺失了什么,因为错误日志和消息没有告诉您。

如果站点配置为使用IIS URL重写模块,但没有安装IIS URL重写模块,也会发生这种情况。

我也有类似的问题,我修复了它通过评论在网络的一些部分。配置文件。

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

决议:

如果您的配置文件包含“<sectionGroup name = " system.web.extensions>”,注释它并运行,因为该部分已经在Machine.config下可用。

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

同样的事情也发生在我身上,当你选择一个网站时,尝试通过双击iis7右窗格上的连接字符串来检查这个。

它会给你一个错误(有一些问题与web配置文件),因为你已经使用URL重写规则和相应的组件没有安装。

安装“Microsoft URL重写模块2.0 for iis7”,这应该可以解决你的问题

Facepalm指警告:

如果配置文件的路径是错误的,也会得到这个错误。再次检查以确保在IIS中正确输入了物理路径。

如果你的网页有语法错误或问题,你会得到这个错误。配置文件。

对我来说,它是我在应用程序设置中使用的URL中的&号

在IIS 7.5错误页面上,你会点击页面底部的“查看更多信息”,在这种情况下,它会带你到以下微软链接: < br > < br > # EYZ0 < br > < br > 0x80070005错误码似乎与权限相关,按照解决方案2中的步骤,方法2为相关文件夹分配正确的权限帐户应该可以修复它-我花了3天时间寻找解决方案,直到我遇到它,然后直接工作

在我的情况下,这是由应用程序物理路径指向IIS中不存在的文件夹引起的。

应用程序设置截图

我也遇到过同样的问题,这里有一个对我有效的解决方案。

  1. IIS管理器
  2. 右击该网站
  3. 编辑权限
  4. 从安全选项卡添加用户'IIS_IUSRS'
  5. 给予用户'IIS_IUSRS'完全权限
  6. 将应用程序池的标识设置为“ApplicationPoolIdentity”

在我的案例中,我选择了。net Framework 2.0应用程序池,并启用了32位应用程序。我有一个。net Framework 2.0应用程序。

I get a "An attempt was made to load a program with An incorrect format"SQL Server复制项目 .错误

在映射驱动器时遇到这个问题,IIS不能使用映射驱动器。只需使用未映射的驱动器。

非常简单的解决方案:

  1. 进入IIS

  2. 从左侧窗格中选择您的应用程序。

  3. 双击中间窗格中的目录浏览。

  4. 现在转到右边窗格,在操作选项卡下,只需点击“启用”

就这些!!

大家,试着理解一下这个错误: Config Error无法读取配置文件,权限不足

. Config Error

探索你的网站存储的文件夹,你会得到一个额外的文件夹“aspnet_client”,删除这个文件夹,它将为你工作。

我试过了,问题解决了。

如果它对你有用,请把它作为答案,这样其他人也会得到解决方案。

这些方法对我都没用,但我终于找到了一个对我有用的方法:

删除web.config中的这一行:

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

不要删除这条线

<compilation debug="true"/>

将本地帐户IIS_IUSRS添加到安全性中,并授予其读/执行访问权限。这对我的案子很管用。

只需将命名空间从[WebService(命名空间= " http://tempuri.org/ ")]改为

# EYZ0

我用这个方法解决了我的问题

这里没有为我工作,我发现这个命令在另一个SO答案虽然,它解决了我的问题。以管理员身份启动命令提示符并运行以下命令:

run->cmd


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

资料来源:用户Vicxx

我做这些步骤来解决这个问题 Windows Server 2012, IIS 8.5。

  1. 进入服务器管理器,单击添加角色和功能
  2. 在角色部分选择:Web Server
  3. 在安全子部分选择一切(我排除了摘要,IP限制和URL授权,因为我们不使用它们)
  4. 在“应用程序开发”下选择.NET Extensibility 4.5ASP.NET 4.5和两个ISAPI条目
  5. 在特征部分选择:NET 3.5.NET 4.5ASP.NET 4.5
  6. 在web服务器部分选择:Web Server(全部),Management Tools (IIS管理控制台和管理服务),Windows

在我的情况下,它只是注释(或删除)anonymousAuthentication属性:

 <security>
<authentication>
<!--<anonymousAuthentication enabled="true" />-->
</authentication>
</security>

在服务器崩溃后,我们有一个网站开始给出“HTTP 500.19 0x80070005错误-无法读取配置文件web。配置”的错误。通常是权限或匿名用户配置,但这些都设置得很好,没有更改。怀疑IIS元数据库中的某些内容已损坏(或在%windir%\system32\inetsrv\config\applicationHost中)。我可以通过在IIS中删除站点并重新创建站点来让它恢复并运行。

尝试安装IIS的“应用程序开发”子组件,如所以中所述

  • 在搜索框中单击“开始按钮”,输入“打开窗口功能”
  • 在功能窗口单击:“Internet Information . 李服务”< / >
  • 点击:“万维网服务”
  • <李>点击:“应用程序
  • 检查(启用)特性。我都查过了 李CGI。< / >

enter image description here

在我的情况下,configSections必须在配置的顶部

<configuration>
<configSections>
...
</configSections>
<othersetting>
</othersetting>
.....

。记得不能用我已经把我的网站/文件移动到一个不同的文件夹。无需更改IIS网站中的路径。

你们现在都可以笑了。

用Windows资源管理器打开你的文件夹。右键单击该文件夹并为IUSER用户添加权限。

在以下路径system.webServer\security\authentication中指定web.config值后,我得到了这个奇怪的错误

我们更倾向于使用web.config来控制IIS的配置,因为IIS是一个糟糕的产品,很难使用其他方法来配置。

问题在于IIS通过将部分配置锁定给外部干涉者来标记其权限。

身份验证配置可以使用IIS服务器级别的特性委托小程序解锁,设置读/写。

当然,以前我们必须自动配置IIS认证类型,现在我们必须自动解锁。我有没有提到IIS是一个很糟糕的产品?

我换了我的网。配置文件提供的实际路径比实际路径相对。

<httpPlatform processPath="F:\Projects\.....
instead of
<httpPlatform processPath="..\approot\web.cmd"

对我来说,我从源码控制处得到了最新的消息,然后就发生了这种事。

applicationhost。配置文件的virtualDirectory路径与我机器中的路径不同。

我恢复了我自己的副本,它可以工作。我正在使用IIS express。

enter image description here

我有问题,因为我复制我的网络。从prod下的配置文件,改变了所有与prod无关的东西,除了重写规则,重写为http年代

删除了这些规则,运行正常。

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

enter image description here

确保physicalPath是正确的:

enter image description here

在我的例子中,我所做的只是在管理员模式下运行visual studio。

我最终通过删除我的web应用程序的obj文件夹来解决这个问题。重新构建解决方案后,问题就消失了。

检查错误/HResult代码,并遵循以下指南:

0 x80070005

出现此问题的原因如下:

  • 您正在运行Windows Vista的计算机上使用IIS 7.0。此外,您可以将Web站点配置为使用UNC直通身份验证来访问远程通用命名约定(UNC)共享。

IIS_IUSRS组没有ApplicationHost对应的权限。配置文件,用于Web。配置文件,或IIS的虚拟/应用程序目录。

解决方案

方法1

请勿将Web站点配置为使用UNC Passthrough认证方式访问远端UNC共享。请指定具有适当权限的用户帐户来访问远程UNC共享。

方法二(最有可能)

为“ApplicationHost.config”文件或“Web.config”文件赋予“IIS_IUSRS”组“读”权限。

简单来说,你需要:

  1. 打开包含您报告的配置文件(例如Web.config)的Properties文件夹
  2. < em > < / em >安全选项卡编辑……添加……: <强> # EYZ0 < / >强组中确认。

我在使用visual studio 2017从本地机器运行项目时遇到此错误

这些解决方案没有一个对我有效。 在一天结束时,对我有效的修复如下:

  1. 右键单击项目->属性-> Web ->项目Url
  2. 在项目Url文本框中,我将端口号加1,然后单击Create Virtual Directory按钮。
  3. 保存更改,然后再次运行项目。

顺便说一句,我收到了同样的错误,我的问题很简单:我错过了。net核心托管包。一旦我安装了这个工具并重新启动了服务器,就没问题了。

你可以在这里找到在windows上托管asp.net core的手册:https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2

安装ASP。NET核心模块

使用以下链接下载安装程序: # EYZ0 < / p >

要解决这个问题,请确保安装了托管包。

https://dotnet.microsoft.com/download/dotnet-core/3.1 # EYZ0 < / p >

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

除了

  • 确保发布目标文件夹具有IUSR和IIS_IUSRS的正确安全设置
  • 控制面板→程序→打开或关闭windows功能→互联网信息服务→万维网服务→应用程序开发功能→打开。net功能

如果你仍然得到错误,试着检查你的网络。配置文件。我把我的web应用程序部署到云上没有问题,但是我的本地IIS抛出了一些错误。我通过从web.config中删除一些注释代码来修复这个错误

确保安装了合适的托管包启用IIS后

如果你已经安装了托管包在启用IIS之前,重新安装托管包可以解决这个问题

在我的例子中:

  1. 已安装的主机包
  2. 启用IIS

然后收到了这个不愉快的消息:

HTTP错误500.19 -服务器内部错误无法访问请求的页面,因为页面的相关配置数据无效。

重新安装托管包解决了这个问题

就我而言,问题在于我在吸毒

<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile="C:\Data\logs\stdout">
<environmentVariables>
<environmentVariable name="VAL" value="SOME VALUE" />
</environmentVariables>
</aspNetCore>

但我使用的是。net 4.6.1,在这个版本中,aspnetcore部分似乎不存在于web.config中。把它去掉就解决了问题。