HTTP 错误 500.19 - 打开 IIS 网页时出现内部服务器错误

本文解决了在 Internet 信息服务 (IIS) 7.0 及更高版本中的 web 应用程序上收到“HTTP 500.19”错误消息的问题。

原始产品版本:  Internet Information Services 7.0 及更高版本
原始 KB 编号:  942055

若要解决此错误,请查看以下各节,了解相应的错误代码信息。

HRESULT 代码 0x8007000d

错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 500.19 - 内部服务器错误
HRESULT:0x8007000d
对 HRESULT 的说明
由于此页相关的配置数据无效,则无法访问所请求的页。

原因

发生此问题的原因是 ApplicationHost.config 或 Web.config 文件包含格式不正确或无法识别的 XML 元素。 IIS 无法识别未安装模块的 XML 元素。 例如,IIS URL 重写 模块。

解决方案

请使用以下方法之一:

  • 从 ApplicationHost.config 或 Web.config 文件中删除格式错误的 XML 元素。
  • 检查无法识别的 XML 元素,然后安装相关的 IIS 模块。

HRESULT 代码 0x80070021

错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 500.19 - 内部服务器错误
HRESULT:0x80070021
对 HRESULT 的说明
由于此页相关的配置数据无效,则无法访问所请求的页。

原因

当 IIS 配置文件的指定部分在较高配置级别锁定时,会发生此问题。

解决方案

解锁指定的部分,或者不要在更高的级别使用它。 有关配置锁定的更多信息,请参阅如何在 IIS 7.0 配置中使用锁定

HRESULT 代码 0x80070005

错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 500.19 - 内部服务器错误
HRESULT:0x80070005
对 HRESULT 的说明
由于此页相关的配置数据无效,则无法访问所请求的页。

原因

此问题是由下列原因之一导致的:

  • 您在运行 Windows 的计算机上使用 IIS。 此外,您可将网站配置为使用通用命名约定 (UNC) 直通身份验证来访问远程 UNC 共享。
  • IIS_IUSRS 组对 ApplicationHost.config 文件、Web.config 文件或 IIS 的虚拟目录或应用程序目录没有相应的权限。

解决方案

请使用以下方法之一:

  • 无需将网站配置为使用 UNC 直通身份验证来访问 UNC 共享。 相反,指定具有相应权限的用户帐户以访问远程 UNC 共享。

  • 针对 ApplicationHost.config 文件或 Web.config 文件,授予对 IIS_IUSRS 组的读取权限。 要执行此操作,请执行以下步骤:

    1. 在 Windows 资源管理器中,找到包含与网站关联的 ApplicationHost.config 文件的文件夹,或找到包含与网站关联的 Web.config 文件的虚拟目录或应用程序目录。

      备注

      Web.config 文件可能不在 IIS 中的虚拟目录或应用程序目录中。 即使在这种情况下,你也需要按照下列步骤操作。

    2. 右键单击包含 ApplicationHost.config 文件的文件夹或可能包含 Web.config 文件的虚拟目录或应用程序目录。

    3. 选择“属性”。

    4. 选择“安全”选项卡,然后选择“编辑”。

    5. 选择“添加”。

    6. 在“输入要选择的对象名称”框中,键入 <computername>\IIS_IUSRS,选择“检查名称”,然后选择“确定”。

      备注

      <computername>是计算机名的占位符。

    7. 选中“读取”复选框,然后选择“确定”。

    8. 在文件夹的“属性”对话框中,单击“确定”。

      备注

      确保 ApplicationHost.config 和 Web.config 文件继承了文件夹属性,以便 IIS_IUSRS 对这些文件具有读取权限。

HRESULT 代码 0x800700b7

错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 500.19 - 内部服务器错误
HRESULT:0x800700b7
对 HResult 的说明
由于此页相关的配置数据无效,则无法访问所请求的页。

原因

如果在配置层次结构(例如,父站点或文件夹中的 ApplicationHost.config 或 Web.config 文件)的更高级别上存在指定配置节设置的重复条目,则可能会出现此问题。 错误消息本身指出了重复条目的位置。

解决方案

检查指定的配置文件,并将其与父 ApplicationHost.config 或 Web.config 文件进行比较,以检查错误消息中提示的重复条目。 删除重复条目,或使条目唯一。 例如,导致此问题发生的可能原因是 ApplicationHost.config 文件有以下代码的重复条目。

<add accessType="Allow" users="*" />

若要解决此问题,请在 ApplicationHost.config 文件中删除授权规则的重复条目。 要执行此操作,请执行以下步骤:

  1. 选择“开始”,在“开始搜索”框中键入“记事本”,右键单击“记事本”,然后选择“以管理员身份运行”。

    备注

    如果系统提示您输入管理员密码或进行确认,则请键入密码,或选择“继续”。

  2. 在“文件”菜单上,选择“打开”,在“文件名”框中键入“%windir%\System32\inetsrv\config\applicationHost.config”,然后选择“打开”。

  3. 在 ApplicationHost.config 文件中,删除类似于以下代码的重复条目:

    <add accessType="Allow" users="*" />
    

HRESULT 代码 0x8007007e

错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 500.19 - 内部服务器错误
HRESULT:0x8007007e
对 HResult 的说明
由于此页相关的配置数据无效,则无法访问所请求的页。

原因

发生此问题的原因是 ApplicationHost.config 或 Web.config 文件引用了无效或不存在的模块或 DLL。

解决方案

在 ApplicationHost.config 文件或 Web.config 文件中,找到无效的模块引用或 DLL 引用,然后修复此引用。 要确定哪个模块引用不正确,请启用“失败请求跟踪”,然后重现问题。

HRESULT 代码 0x800700c1

错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 500.19 - 内部服务器错误
HRESULT:0x800700c1
对 HRESULT 的说明
由于此页相关的配置数据无效,则无法访问所请求的页。

原因

如果指定模块的位数不同于托管应用程序的应用程序池的位数,则会发生此问题。 例如,尝试将 32 位组件加载到 64 位应用程序池中。 如果指定的模块以损坏,则也可能发生此问题。

解决方案

确保指定模块的位数与托管应用程序池的位数相同。 此外,请确保模块未损坏。

HRESULT 代码 0x8007010b

错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 500.19 - 内部服务器错误
HRESULT:0x8007010b
对 HRESULT 的说明
由于此页相关的配置数据无效,则无法访问所请求的页。

原因

如果指定的内容目录无法访问,则会发生此问题。

解决方案

  • 验证文件路径是否存在。
  • 验证文件路径的名称是否正确。
  • 验证文件路径是否设置了正确的文件级权限。
  • 验证文件路径是否指向有效的文件系统类型。

如果您不确定文件路径,请使用进程监视器或失败请求跟踪工具对其进行标识。

HRESULT 代码 0x8007052e

错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 500.19 - 内部服务器错误
HRESULT:0x8007052e
对 HRESULT 的说明
由于此页相关的配置数据无效,则无法访问所请求的页。

原因

IIS 中的默认进程标识没有足够的权限来打开远程共享上的 Web.config 文件。

解决方案

验证此 web 应用程序的应用程序池标识帐户是否有足够的权限打开 web.config 文件。

HRESULT 代码 0x80070003

错误消息:

应用程序“应用程序名称”中的服务器错误
HTTP 错误 500.19 - 内部服务器错误
HRESULT:0x80070003
对 HRESULT 的说明
无法读取配置文件。

原因

此错误由缺少权限或与虚拟目录的路径不匹配的物理路径导致。 例如,Web 应用物理根路径下不存在 Web.config

解决方案

  • 验证该 Web.config 路径是否存在并且设置了正确的权限。
  • 收集进程监视器日志,获取有关错误的详细信息。

修复更新 windows 时中断 IIS 配置文件的问题

作为一般安全规则,在安装任何更新之前,应备份所有配置文件(不限于 IIS)。 如果使用虚拟机,请获取虚拟机的快照,然后再更新虚拟机。 此建议不限于 Windows 更新。