无法访问请求的页面,因为页面的相关配置数据无效错误

qanimi 发布于 2018-12-25 asp.net 最后更新 2018-12-25 09:22 218 浏览

我想通过IIS manager在IIS上上我自己的asp.net网站。但是当我这样做时,我得到以下错误

HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid
Module  IIS Web Core
Notification    Unknown
Handler Not yet determined
Error Code  0x80070005
Config Error    Cannot read configuration file due to insufficient permissions
Config File \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config
我多次搜索这个错误的解决方案,但没有任何解决方案解决了错误。 我在IUSR帐户中遇到问题。我无法在web.config的属性中的“组或用户名”中看到此帐户。 问题是什么?
已邀请:

het

赞同来自:

在以下路径system.webServer\security\authentication中指定web.config中的值后,我收到了这个奇怪的错误 我们更喜欢使用web.config来控制IIS的配置,因为IIS是一个可怕的产品,很难使用其他方法进行配置。 问题是IIS通过将部分配置锁定到外部中介来标记其授权。 可以使用IIS服务器级别的功能委派小程序解锁身份验证配置,设置读/写。 当然,在我们必须自动配置IIS auth类型之前,现在我们必须自动解锁。我提到IIS是一个可怕的产品吗?

weos

赞同来自:

就我而言,我所做的只是以管理员模式运行visual studio。

qodio

赞同来自:

同样的事情发生在我身上,尝试通过在选择网站时双击IIS 7右窗格上的连接字符串来检查这一点。 它会给你一个错误(web配置文件有问题),因为你使用了URL重写规则并且没有安装相应的组件。 安装“用于IIS 7的Microsoft URL重写模块2.0”,这应该可以解决您的问题

hquia

赞同来自:

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

vanimi

赞同来自:

在IIS 7.5错误页面上,您可以单击页面底部的“查看更多信息”,在这种情况下,它将转到以下Microsoft链接: 搜索结果http://support.microsoft.com/kb/942055搜索结果 0x80070005错误代码似乎是权限相关的,并按照解决方案2中的步骤,方法2分配正确的帐户与相关文件夹的权限应该修复它 - 我花了3天寻找解决方案,直到我遇到它,直接工作。

edolor

赞同来自:

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

run->cmd
run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"
图片来源:用户Vicxx

wnihil

赞同来自:

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

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

jautem

赞同来自:

使用Windows资源管理器打开您的项目内容的文件夹。右键单击该文件夹并为USER用户添加权限。

xillum

赞同来自:

只需将命名空间从[WebService(Namespace =“http://tempuri.org/”)]更改为 http://microsoft.com/webservices/ 我用这个解决方案解决了我的问题

gnihil

赞同来自:

在我的例子中,我选择了使用.NET Framework 2.0的应用程序池并启用了32位应用程序。我有.NET Framework 2.0应用程序。 I get a "An attempt was made to load a program with an incorrect format" error on a SQL Server replication project

avelit

赞同来自:

在我的情况下安装IIS URL重写模块解决了这个问题。

kquis

赞同来自:

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

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

oqui

赞同来自:

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

yquo

赞同来自:

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

hid

赞同来自:

我更改了我的web.config文件以提供实际路径而不是相对路径。

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

tut

赞同来自:

浏览您的网站所在的文件夹,看到您将获得一个额外的文件夹“aspnet_client”删除该文件夹,它将适合您。 我试过这个我的问题解决了。 如果它适合你,请把它作为答案,以便其他人也可以得到解决方案。

esaepe

赞同来自:

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

fharum

赞同来自:

您需要在本地计算机上为IIS_IUSRS分配权限(但您不必为IUSR分配,实际上即使您明确拒绝权限也会有效)。 要分配权限,只需右键单击文件夹,然后在安全选项卡上确保授予正确的权限,如果未列出用户,则单击“添加”,然后输入IIS_IUSRS(并确保在“域”下的本地选择计算机,或在名称字段YourLocalComputerName \ IIS_IUSRS中输入,然后你就可以了。 如果您希望可以而不是为IIS_IUSRS组分配权限,则可以改为分配给应用程序池,该应用程序池通常应为“IIS APPPOOL \ app pool name”。

snihil

赞同来自:

为我解决这个问题的另一种可能性: IIS - >编辑权限 - >安全选项卡 - >为“用户”提供适当的权限(或IIS_IUSRS,具体取决于您的设置)

fet

赞同来自:

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

bnemo

赞同来自:

尝试安装IIS的“应用程序开发”子组件

ksit

赞同来自:

埃姆。我已将我的网站/文件移动到另一个文件夹。无需更改IIS网站中的路径。 你们现在都笑了。

lest

赞同来自:

有时,此消息可能缺少IIS环境中的组件,例如特定框架,或动态压缩等IIS功能,而不是web.config的权限。 如果是这种情况,解决方案可以是安装和使用Microsoft平台安装程序并安装那些缺少的组件 - 您可能不得不采取措施,因为错误日志和消息没有告诉您。

bsit

赞同来自:

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

application setting screenshot

ut_et

赞同来自:

我遇到了问题,因为我从prod复制了我的web.config文件,更改了除了重写为httpS的重写规则之外的所有内容。 删除这些规则并运行正常。

xhic

赞同来自:

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

qquasi

赞同来自:

我这样做是为了解决这个问题 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 Server(全部),Management Tools(IIS管理控制台和管理服务),Windows

xatque

赞同来自:

对我来说,我从源代码控制中获得最新信息并且发生了这种情况 applicationhost.config文件的virtualDirectory路径与我的机器不同。 我恢复了我自己的副本,它的工作原理。我正在使用IIS express。 enter image description here

cvelit

赞同来自:

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

jdolor

赞同来自:

这些都不适合我,但我终于找到了一个对我有用的解决方案: 在web.config中删除此行:

<compilation debug="true" targetFramework="4.5"/>
不要删除此行
<compilation debug="true"/>

jdolor

赞同来自:

最后,我得到了解决问题的方法。 asp.net帐户没有出现在IIS管理器中,因为我没有在IIS中检查其复选框,以便在Windows 7中按照步骤执行此操作

  1. 打开控制面板
  2. 点击“程序”链接(不是卸载程序)
  3. 点击“打开/关闭Windows功能”链接
  4. 在弹出窗口中找到“Internet Information services IIS”并展开其节点
  5. 展开“万维网服务”节点
  6. 展开“应用程序开发功能”节点
  7. 选中“ASP.NET”的复选框
  8. 然后单击“确定”按钮
现在您将在IIS管理器上看到Asp.net帐户,默认情况下您会看到IIS帐户现在您应该将asp.net网站从“我的文档”移动到IIS有权访问它的另一个地方(到您的任何分区)计算机)现在从IIS管理器浏览您的网站,它应该工作。非常感谢Jeff Turner的解决方案

out

赞同来自:

该消息表明您的配置文件在某种程度上已损坏。但是它也说它实际上无法访问配置文件。因此,我忽略了有关损坏/缺乏有效性的原始消息,因为这很可能只是由于缺乏授权而无法读取文件的影响。 它无法读取配置文件的原因是因为运行Web应用程序的进程无权访问文件/目录。因此,您需要为运行Web应用程序的进程提供这些权限。 访问权限应该相当简单,即至少读取,并且,根据您的应用程序,可能是写入。 在上面,你提到IUSR等不在web.config的属性中。如果你的意思是IUSR没有列在文件的安全选项卡中那么这是一件好事。一个人不想给IUSR任何web.config的权限。角色IUSR是一个匿名的互联网用户。 只能通过您的应用程序访问文件web.config。 问题是你没有说你正在使用哪个操作系统和IIS版本,因此很难建议采取哪些步骤。 即在IIS 7.5中,由于您的ApplicationPoolIdentity未被分配权限,可能会出现您引用的错误消息。您的Web应用程序属于应用程序池,因此您需要授予Web应用程序的应用程序池运行的OS帐户的权限。通常这类似于NetworkService,但您可能已将其定制为在特定帐户下运行。没有更多信息,很难帮助你。

prem

赞同来自:

如果web.config文件中存在语法错误或问题,则可能会出现此错误。 对我来说,这是我在AppSettings中使用的一个迷失的PLACEHOLDER FOR CODE_0。

ysunt

赞同来自:

将本地帐户IIS_IUSRS添加到安全性,并授予他们读取/执行访问权限。这适用于我的情况。

rsaepe

赞同来自:

*非常简单的解决方案

  1. 转到IIS
  2. 从左侧窗格中选择您的应用程序。
  3. 双击中间窗格中的目录浏览。
  4. 现在转到右侧窗格并在“操作”选项卡下,单击“启用”
就这样 !! 人们,试着理解错误: 配置错误由于权限不足,无法读取配置文件

bdicta

赞同来自:

就我而言,configSections必须位于配置的顶部

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

lnon

赞同来自:

我遇到了同样的问题,这是适合我的解决方案。

  1. IIS管理器
  2. 右键点击该网站
  3. 修改权限
  4. 从Secutiry标签添加了用户'IIS_IUSRS'
  5. 为用户'IIS_IUSRS'
  6. 授予完全权限
  7. 将应用程序池的标识设置为“ApplicationPoolIdentity”

ha

赞同来自:

如果映射驱动器出现此问题,则IIS无法与映射驱动器一起使用。只需使用未映射的驱动器。

hrerum

赞同来自:

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

kex

赞同来自:

我也有类似的问题,我通过评论web.config文件中的一些部分来修复它。 该项目早期是在.Net 2.0中构建和部署的。迁移到.Net 3.5后,它开始抛出异常。

分辨率: 如果您的配置文件包含“< sectionGroup name =”system.web.extensions>“,请对其进行注释并运行,因为此部分已在Machine.config下可用。