本文记录一次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,进入详细页面后搜索下相关代码,可以获取更多有帮助的内容:
首先,我根据页面的提示信息并结合自己的情况来分析,直观判断出是IIS的配置文件applicationhost.config有问题,当时IIS下所有网站打开都是HTTP 错误500.19,因此排除是单个网站的web.config文件出问题。
然后说下我最后是如何解决这个问题的,我的情况很简单,删除掉出现问题的网站和应用程序池,因为正是这个网站引用了某个无效的模块,而无效的模块的配置是放在applicationhost.config中的,所以一颗老鼠屎坏了一锅粥,导致所有网站都无法打开:
具体来说,当时我在服务器上测试安装WSUS(Windows Server 更新服务),WSUS会自动在IIS上创建一个Wsus的网站,后面我卸载掉了WSUS,但是貌似没卸载干净,在IIS上残留了之前自动创建的网站,导致这个网站无法正确引用WSUS相关模块和功能,影响了IIS下所有其他网站都出现500.19/0x8007007e错误。有类似情况的朋友可以参考下文章所说的情况,基本上错误提示都把问题原因说的很清楚了。
至于如何判断是哪个网站配置出问题,这里先出一个昏招,删除掉IIS上所有网站,然后一个个重新建,这样很容易排查出是哪个网站影响了IIS,另外记得先备份相关设置!
昏招如果不能随便用,这里就要使用官方建议的方法,就是使用IIS的失败请求跟踪模块进行错误跟踪,具体如何使用请参阅官方文档
另外如果有相关经验的开发人员,也可以直接检查IIS的配置文件和网站对应的配置文件。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98886.html