解决IIS出现HTTP错误500.19:工作进程无法读取 applicationhost.config 或 web.config 文件

本文记录一次HTTP错误500.19,详细错误代码为0x8007007e的排查经历和解决方法。如果你也遇到HTTP 500.19错误,最好的解决方法就是根据页面上的错误提示进行排查,建议点击错误详细信息,进入官网帮助中心查看对应的解决方法。

首先看下本人遇到的错误页面提示:

HTTP 错误 500.19 – Internal Server Error

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

最可能的原因:

  • 工作进程无法读取 applicationhost.config 或 web.config 文件。
  • applicationhost.config 或 web.config 文件中存在格式错误的 XML。
  • 由于 NTFS 权限不正确,服务器无法访问 applicationhost.config 或 web.config 文件。

可尝试的操作:

  • 查询事件日志中有关配置文件不可读的原因的信息。
  • 确保为应用程序池指定的用户标识或通过身份验证的用户具有访问 web.config 文件的必需权限。

详细错误信息:

      模块   DynamicCompressionModule

      通知   SendResponse

处理程序   ExtensionlessUrlHandler-Integrated-4.0

错误代码   0x8007007e

请求的 URL   https://shiyousan.com:80/

物理路径   X:/xxx/xxxx/十有三博客

登录方法   尚未确定

登录用户   尚未确定

详细信息:

当读取 Web 服务器或 Web 应用程序的配置文件出现问题时,就会发生此错误。在某些情况下,事件日志会包含有关导致此错误的原因的更多信息。

查看详细信息 »

这里强烈建议点击详细信息查看更多错误提示,我遇到的错误代码是0x8007007e,进入详细页面后搜索下相关代码,可以获取更多有帮助的内容:

0x8007007e错误详细信息和解决方法

详细的错误原因:
因为 ApplicationHost.config 文件或 Web.config 文件引用无效或不存在的模块或 DLL,将发生此问题。 
解决方法:
在 ApplicationHost.config 文件中或在 Web.config 文件中,找到模块引用或无效的 DLL 引用,然后修复引用。若要确定哪些模块引用不正确,请启用失败请求跟踪,并重现该问题。

首先,我根据页面的提示信息并结合自己的情况来分析,直观判断出是IIS的配置文件applicationhost.config有问题,当时IIS下所有网站打开都是HTTP 错误500.19,因此排除是单个网站的web.config文件出问题。

PS:另外如果有手动修改过IIS配置文件或者网站配置,并且造成XML格式不正确也会出现此错误。

然后说下我最后是如何解决这个问题的,我的情况很简单,删除掉出现问题的网站和应用程序池,因为正是这个网站引用了某个无效的模块,而无效的模块的配置是放在applicationhost.config中的,所以一颗老鼠屎坏了一锅粥,导致所有网站都无法打开:

删除IIS上有问题的网站

删除有问题的应用程序池

具体来说,当时我在服务器上测试安装WSUS(Windows Server 更新服务),WSUS会自动在IIS上创建一个Wsus的网站,后面我卸载掉了WSUS,但是貌似没卸载干净,在IIS上残留了之前自动创建的网站,导致这个网站无法正确引用WSUS相关模块和功能,影响了IIS下所有其他网站都出现500.19/0x8007007e错误。有类似情况的朋友可以参考下文章所说的情况,基本上错误提示都把问题原因说的很清楚了。

至于如何判断是哪个网站配置出问题,这里先出一个昏招,删除掉IIS上所有网站,然后一个个重新建,这样很容易排查出是哪个网站影响了IIS,另外记得先备份相关设置!

昏招如果不能随便用,这里就要使用官方建议的方法,就是使用IIS的失败请求跟踪模块进行错误跟踪,具体如何使用请参阅官方文档

使用失败请求跟踪规则排查

另外如果有相关经验的开发人员,也可以直接检查IIS的配置文件和网站对应的配置文件。




原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98886.html

(0)
上一篇 2021年8月21日 01:23
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论