542

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

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

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

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

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

问题是什么?

4

47 回答 47

741

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

于 2013-01-21T23:14:02.323 回答
474

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

  1. 打开控制面板
  2. 点击“程序”链接(不是卸载程序)
  3. 单击“打开/关闭 Windows 功能”链接
  4. 在弹出窗口中找到“Internet 信息服务 IIS”并展开其节点
  5. 展开“万维网服务”节点
  6. 展开“应用程序开发功能”节点
  7. 勾选“ASP.NET”复选框</li>
  8. 然后点击确定按钮

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

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

于 2012-02-11T11:46:19.313 回答
196

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

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

访问权限应该相当简单,即至少是Read,并且根据您的应用程序,可能是Write

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

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

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

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

于 2012-05-13T09:00:02.690 回答
58

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

  1. IIS 管理器
  2. 右键单击该网站
  3. 编辑权限
  4. 从“安全”选项卡中添加了用户“IIS_IUSRS”
  5. 授予用户 'IIS_IUSRS' 完全权限
  6. 将应用程序池的标识设置为“ApplicationPoolIdentity”
于 2014-01-23T14:42:28.217 回答
40

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

在此处输入图像描述

确保物理路径正确:

在此处输入图像描述

于 2016-09-10T22:06:13.920 回答
26

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

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

于 2019-01-21T17:47:11.950 回答
25

手掌警报:

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

于 2013-09-19T13:51:05.220 回答
19

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

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

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

于 2012-08-14T16:19:50.743 回答
13

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

https://dotnet.microsoft.com/download/dotnet-core/3.1 在此处输入图像描述

于 2020-10-22T13:10:09.863 回答
12

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

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

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

于 2013-09-18T08:35:21.007 回答
10

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

run->cmd

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

学分:用户 Vicxx

于 2015-02-20T12:09:14.387 回答
8

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

  • 在搜索框中单击“开始按钮”,输入“打开或关闭 Windows 功能”
  • 在功能窗口中,单击:“Internet 信息服务”
  • 点击:“万维网服务”
  • 点击:“应用程序开发功能”
  • 检查(启用)这些功能。我检查了除了 CGI 之外的所有内容。

在此处输入图像描述

于 2015-08-26T19:08:58.797 回答
8

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

你们现在可能都笑了。

于 2015-10-05T21:17:23.360 回答
8

安装 ASP.NET Core 模块

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

于 2019-04-22T19:21:35.977 回答
7

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

于 2012-02-09T17:58:22.473 回答
7

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

  1. 转到服务器管理器,单击添加角色和功能
  2. 在角色部分选择:Web Server
  3. 在安全子部分下选择所有内容(我排除了摘要、IP 限制和 URL 授权,因为我们不使用它们)
  4. 在 Application Development 下选择.NET Extensibility 4.5ASP.NET 4.5并且两个ISAPI条目
  5. 在功能部分选择:NET 3.5, .NET 4.5,ASP.NET 4.5
  6. 在 Web 服务器部分选择:(Web Server全部)、Management Tools(IIS 管理控制台和管理服务)、Windows
于 2015-04-25T13:45:30.937 回答
6

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

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

于 2012-10-23T15:13:15.207 回答
4

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

<system.webServer>
  <defaultDocument>
    <files>
      <add value="index.aspx" />
    </files>
  </defaultDocument>...
于 2012-09-21T17:17:54.860 回答
4

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

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

于 2012-12-12T00:52:22.907 回答
3

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

于 2013-07-20T17:53:02.900 回答
3

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

应用设置截图

于 2014-01-10T22:40:01.377 回答
3

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

于 2014-05-06T13:33:16.500 回答
3

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

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

于 2016-07-08T21:55:42.743 回答
3

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

于 2020-11-15T17:18:21.527 回答
2

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

于 2012-02-09T17:58:36.433 回答
2

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

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

决议:

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

于 2013-05-21T08:56:37.227 回答
2

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

对我来说,这是我在 AppSettings 中使用的 URL中的一个杂散符号。

于 2013-09-25T19:24:47.883 回答
2

在 IIS 7.5 错误页面上,您可以单击页面底部的“查看更多信息”,在这种情况下,它将带您到以下 Microsoft 链接:http:

//support.microsoft.com/kb/942055

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

于 2013-12-03T23:33:26.670 回答
2

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

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

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

于 2014-07-14T14:40:51.650 回答
1

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

在 web.config 中删除这一行:

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

不要删除此行

<compilation debug="true"/>
于 2014-08-17T22:01:22.927 回答
1

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

于 2014-11-25T17:08:47.697 回答
1

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

 <security>
     <authentication>
         <!--<anonymousAuthentication enabled="true" />-->
     </authentication>
 </security>
于 2015-05-07T01:45:39.747 回答
1

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

<configuration>
<configSections>
...
</configSections>
<othersetting>
</othersetting>
.....
于 2015-09-11T03:47:16.040 回答
1

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

我们更喜欢控制如何配置web.configIIS,因为 IIS 是一个糟糕的产品,并且很难使用其他方法进行配置。

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

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

当然,在我们必须自动配置 IIS 身份验证类型之前,现在我们必须自动解锁。我有没有提到 IIS 是一个可怕的产品?

于 2015-12-21T13:09:43.833 回答
1

对我来说,我从源代码控制中获得了最新信息,这发生了。

applicationhost.config 文件的 virtualDirectory 路径与我的机器不同。

我恢复了我自己的副本并且它有效。我正在使用 IIS 快递。

在此处输入图像描述

于 2016-04-01T15:48:12.323 回答
1

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

于 2017-04-15T04:06:54.353 回答
1

检查错误/HResult 代码并遵循本指南:

0x80070005

出现此问题的原因之一是:

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

IIS_IUSRS 组对 ApplicationHost.config 文件、Web.config 文件或 IIS 的虚拟/应用程序目录没有适当的权限。

解决方案

方法一

不要将网站配置为使用 UNC 直通身份验证来访问远程 UNC 共享。相反,请指定具有访问远程 UNC 共享的适当权限的用户帐户。

方法2(最有可能)

IIS_IUSRS向组授予ApplicationHost.config文件或文件的读取权限Web.config

因此,简单地说,您需要:

  1. 打开包含您报告的配置文件的文件夹的属性(例如)。Web.config
  2. 安全选项卡中,编辑...添加...IIS_IUSRS分组并确认。
于 2018-02-12T18:09:38.050 回答
1

此外

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

如果您仍然收到错误,请尝试检查您的 web.config 文件。我将 Web 应用程序部署到云中没有问题,但不知何故,我的本地 IIS 抛出了一些错误。我通过从 web.config 中删除一些注释代码来修复错误

于 2022-01-19T23:16:52.867 回答
0

在我的例子中,我选择了带有 .NET Framework 2.0 的应用程序池并启用了 32 位应用程序。我有 .NET Framework 2.0 应用程序。

我在 SQL Server 复制项目上收到“尝试加载格式不正确的程序”错误

于 2014-02-07T06:41:48.523 回答
0

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

http://microsoft.com/webservices/

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

于 2014-11-28T11:21:41.527 回答
0

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

于 2015-06-25T22:41:59.870 回答
0

使用 Windows Explorer 打开包含项目内容的文件夹。右键单击该文件夹并为 IUSER 用户添加权限。

于 2015-11-12T06:51:06.800 回答
0

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

<httpPlatform processPath="F:\Projects\.....
instead of 
<httpPlatform processPath="..\approot\web.cmd"
于 2016-01-16T03:42:23.520 回答
0

就我而言,我所做的只是在管理员模式下运行 Visual Studio。

于 2016-10-26T03:06:14.737 回答
0

使用 Visual Studio 2017 从本地计算机运行项目时出现此错误

这些解决方案中没有一个对我有用。归根结底,对我有用的修复如下:

  1. 右键单击项目 -> 属性 -> Web -> 项目 URL
  2. 在项目 Url 文本框中,我将端口号加一,然后单击 Create Virtual Directory 按钮。
  3. 保存您的更改,然后再次运行该项目。
于 2018-10-31T11:27:47.890 回答
-3

*非常简单的解决方案:

  1. 转到 IIS

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

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

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

就这样 !!

各位,请尝试理解错误:Config Error Cannot read configuration file due to enough permissions

于 2014-07-07T13:36:37.637 回答