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 组的读取权限。 要执行此操作,请执行以下步骤:
在 Windows 资源管理器中,找到包含与网站关联的 ApplicationHost.config 文件的文件夹,或找到包含与网站关联的 Web.config 文件的虚拟目录或应用程序目录。
注意
Web.config 文件可能不在 IIS 中的虚拟目录或应用程序目录中。 即使在这种情况下,你也需要按照下列步骤操作。
右键单击包含 ApplicationHost.config 文件的文件夹或可能包含 Web.config 文件的虚拟目录或应用程序目录。
选择“属性”。
选择“安全”选项卡,然后选择“编辑”。
选择“添加”。
在 “输入要选择的对象名称 ”框中,键入 <computername>\IIS_IUSRS,选择“ 检查名称”,然后选择“ 确定”。
注意
< Computername> 是计算机名称的占位符。
选中“读取”复选框,然后选择“确定”。
在文件夹的“属性”对话框中,单击“确定”。
注意
确保 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 文件中删除授权规则的重复条目。 要执行此操作,请执行以下步骤:
选择“开始”,在“开始搜索”框中键入“记事本”,右键单击“记事本”,然后选择“以管理员身份运行”。
注意
如果系统提示您输入管理员密码或进行确认,则请键入密码,或选择“继续”。
在“文件”菜单上,选择“打开”,在“文件名”框中键入“%windir%\System32\inetsrv\config\applicationHost.config”,然后选择“打开”。
在 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 更新。