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

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

模块IIS Web核心 通知未知 处理人尚未确定 错误码0x80070005 Config Error由于权限不足,无法读取配置文件 配置文件\\?\C:\用户\亚索\文档\Visual Studio 2008\网站\WebSite5\web.config

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

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

有什么问题吗?


当前回答

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

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

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

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

文件网络。配置应该只能通过应用程序访问。

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

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

其他回答

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

“HTTP错误500.19”错误时,您打开IIS 7.0网页

0 x80070005

出现此问题的原因如下: 您正在运行Windows Vista的计算机上使用IIS 7.0。此外,您可以将Web站点配置为使用UNC直通身份验证来访问远程通用命名约定(UNC)共享。 IIS_IUSRS组没有ApplicationHost对应的权限。配置文件,用于Web。配置文件,或IIS的虚拟/应用程序目录。

解决方案

方法1

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

方法二(最有可能)

为ApplicationHost的IIS_IUSRS组赋予“读”权限。配置文件或Web。配置文件。

简单来说,你需要:

打开包含您报告的配置文件(如Web.config)的文件夹的属性。 在安全选项卡中,编辑…并添加…: IIS_IUSRS组,确认。

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

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

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

在IIS 7.5错误页面上,你会点击页面底部的“查看更多信息”,在这种情况下,它会带你到以下微软链接: http://support.microsoft.com/kb/942055 0x80070005错误码似乎与权限相关,遵循决议2中的步骤,方法2分配正确的帐户与相关文件夹的权限应该修复它-我花了3天寻找一个解决方案,直到我遇到它,然后直接工作。

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

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

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

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

文件网络。配置应该只能通过应用程序访问。

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

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

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

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