IIS 6.0排错实战: 解决HTTP 500错误

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
HTTP 5xx错误: HTTP 5xx错误意味着什么? -->服务器无法正确响应用户的请求,在服务端产生错误或服务器遇到一个异常(the server is aware that it has erred or is incapable of performing the request)  产生原因: 服务器的配置导致 Web应用执行错误   HTTP 500状态码定义: RFC 2616  IIS状态码 -->参见KB 318380
排错前的准备(1): 配置客户端IE 5.X  IE 6.X -->取消IE高级设置中的"显示友好的HTTP错误信息"(KB 294807)   配置IIS以提供更多的信息-->配置自定义错误消息  启用调试信息  配置日志记录   基于安全的考虑-->生产环境中不要向客户端返回过于详尽的错误信息
排错前的准备(2): 收集日志文件: IIS日志-->%SystemRoot%\System32\LogFiles\W3Svcn\*.log   Http.sys日志-->%systemroot%\system32\logfiles\httperr   事件查看器
排错前的准备(3): 选择适当的工具软件: WFetch  性能监视器  IISState  ADPlus /Windbg   排错过程的一般步骤: 收集信息-->分析问题-->验证-->解决 
HTTP 500.x: 服务器内部错误  常见的500.x子错误: 500.11-->应用正在关闭中(未实现)  500.12-->应用正在启动中  500.13-->服务器忙  500.14-->应用配置无效(未实现)  500.16-->UNC授权错误  500.17-->URL授权无法找到  500.18-->URL授权无法打开  500.100-->内部ASP错误 
500.12错误: 页面所属的应用程序正在关闭/重新启动  global.asa-->IIS会监视文件更新提醒,如果global.asa被更新,会重启整个应用  大多数情况下刷新页面即可解决问题  解决方案-->经常性的出现500.12  关闭防病毒软件对global.asa文件的扫描  调整备份软件  参见KB 248013 /KB 302424
500.13错误: Web服务器太忙  ASP请求处理-->线程池: 默认25线程/处理器  默认最大请求队列限制在3000  解决方案-->监视Active Server Page /Request Queue计数器  调整metabase属性值AspRequestQueueMax-->在命令提示符里面输入cd \Inetpub\AdminScripts按回车键--输入adsutil.vbs get /w3svc/AspRequestQueueMax按回车键可以看到当前的metabase属性值  使用NLB处理负载 
500.15错误: 不允许直接请求global.asa  global.asa-->是一个特殊文件,不能从浏览器直接访问  应用初始和结束时的一些预定义操作  会话(session)初始和结束时的操作
500.16错误: UNC授权凭据不正确  IIS使用logon API获取访问票据  解决方案: 重设UNC用户凭据,启用相应用户账户
500.17 /500.18错误: URL授权问题(IIS 6.0专有错误)  500.17-->授权存储无法找到  500.18-->授权存储无法打开  解决方案: metabase中相关属性(AZStoreName /AzScopeName)  对授权存储的访问权限(AppPool标示具备读权限)  修复损坏的授权存储
URL授权: 原理: 利用存储在XML文件或AD中的配置信息,实现基于角色的授权管理-->见下图:
20031765
500.100错误(1): 由ASP产生的错误: 脚本错误  组件错误(组件丢失)  权限设置  脚本执行超时   方法: 使用监视工具(filemon、regmon)  使用500-100.asp返回详细的ASP错误,参见KB261200  使用调试工具(IISState /AD+/Windbg)
500.100错误(2): 原因: 脚本运行期错误  用户权限  应用程序本身返回的500.100错误   解决方案: 使用IDE集成环境进行调试  使用Script Debugger
500.100错误(3): 原因: 组件丢失  现象-->ADODB.Connection(0x800A0E7A) Provider cannot be found.It may be properly installed. /Nwind.asp.line 10  解决方案-->regsvr32.exe重新注册组件  参见KB 278604  ASP 0115错误(未处理的错误)  可能产生的原因: 文件注册表权限  不正确的组件注册  未处理的组件执行错误  参见KB 194190(ASP 0115可能原因)  解决方法: 使用FileMon RegMon、提升AppPool用户权限  使用IISState找到出错的组件的错误原因  使用ADPlus KB 281674
500.100错误(4): 原因: 脚本执行超时 Active Server Pages,ASP 0113(0x80004005)  解决方案: 调整站点ASP脚本超时时间  检查Server.Timeout  优化ASP应用执行效率
501错误: HTTP头指定了未实现的功能-->IIS 6.0只支持RFC2616和RFC2518中定义的HTTP头方法  HTTP-->GET/PUT/POST/HEAD/OPTIONS/CONNECT/DELETE  WebDAV-->COPY/LOCK/MKCOL/MOVE/PROPFIND/PROPPATCH/UNLOCK  参见KB 247643 /KB 811262
505错误: HTTP版本不受支持  原因: 第三方的产品干扰IE,发送不受支持的HTTP版本请求  使用HTTP 1.1访问只支持HTTP 1.0的旧Web服务器 
502错误(1): 网关或代理服务器收到了无效响应-->CGI或者Proxy未返回有效的HTTP头  代理服务器出错   原因: CGI程序执行异常-->502.1 CGI应用程序超时  502.2 CGI应用程序出错 
502错误(2): 解决方案: 查看日志-->sc-win32-status  net helpmsg   找到产生问题的CGI程序和问题原因
503错误(1): 服务不可用  一般由内核模式驱动(http.sys)直接返回503错误  查看httperr.log
503错误(2): 可能产生错误的原因(http.sys)   日志错误描述                   可能的原因
Disabled                管理员停止了AppPool
                                                         AppOffline               AppPool处于快速失败标识错误,无法启动AppPool
                                                        ConnLimit                 连接数达到了站点或者服务器的上限
                                                       AppShutdown            由于CPU使用超过限制,AppPool被关闭
                                                      QueueFull                  AppPool请求队列长度超出
                                                     AppPoolTimer              应用忙碌,在AppPool队列等待超时
503错误(3): 我能让错误信息更友好一些吗?  无法修改http.sys传回的错误   解决方案: http.sys-->增加"核心请求队列限制(请求次数)"数值  w3svc-->调整快速失败保护参数  优化应用程序性能  使用NLB分担服务器负载 
504错误: 网关超时-->服务器在试图完成请求时不能从所访问的上游服务器及时接收到响应  常见于代理服务器(MS Proxy /ISA)返回的消息中 

本文转自 叶俊生 51CTO博客,原文链接:http://blog.51cto.com/yejunsheng/164233
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
数据安全/隐私保护 Docker 容器
配置Harbor支持https功能实战篇
关于如何配置Harbor支持HTTPS功能的详细教程。
162 12
配置Harbor支持https功能实战篇
|
4月前
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
98 3
|
4月前
|
机器学习/深度学习 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
在数据驱动的时代,网络数据抓取对于数据分析、机器学习等至关重要。HTTP协议作为互联网通信的基石,其重要性不言而喻。Python的`requests`库凭借简洁的API和强大的功能,成为网络数据抓取的利器。本文将通过实战演练展示如何使用`requests`库进行数据抓取,包括发送GET/POST请求、处理JSON响应及添加自定义请求头等。首先,请确保已安装`requests`库,可通过`pip install requests`进行安装。接下来,我们将逐一介绍如何利用`requests`库探索网络世界,助你成为数据抓取大师。在实践过程中,务必遵守相关法律法规和网站使用条款,做到技术与道德并重。
64 2
|
4月前
|
数据采集 网络协议 API
HTTP协议大揭秘!Python requests库实战,让网络请求变得简单高效
【9月更文挑战第13天】在数字化时代,互联网成为信息传输的核心平台,HTTP协议作为基石,定义了客户端与服务器间的数据传输规则。直接处理HTTP请求复杂繁琐,但Python的`requests`库提供了一个简洁强大的接口,简化了这一过程。HTTP协议采用请求与响应模式,无状态且结构化设计,使其能灵活处理各种数据交换。
93 8
|
4月前
|
Python
HTTP协议不再是迷!Python网络请求实战,带你走进网络世界的奥秘
本文介绍了HTTP协议,它是互联网信息传递的核心。作为客户端与服务器通信的基础,HTTP请求包括请求行、头和体三部分。通过Python的`requests`库,我们可以轻松实现HTTP请求。本文将指导你安装`requests`库,并通过实战示例演示如何发送GET和POST请求。无论你是想获取网页内容还是提交表单数据,都能通过简单的代码实现。希望本文能帮助你在Python网络请求的道路上迈出坚实的一步。
81 0
|
6月前
|
数据采集 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
【7月更文挑战第30天】在网络数据抓取中,Python的`requests`库凭借其简洁的API和强大功能脱颖而出。首先确保已通过`pip install requests`安装库。实战演练包括:发送GET请求获取数据(如`requests.get(url)`),处理JSON响应(利用`.json()`方法解析),添加请求头以绕过反爬虫机制(如设置`User-Agent`),以及发送POST请求提交数据。掌握这些技能的同时,务必遵守法律法规和网站政策。
67 6
|
6月前
|
数据采集 网络协议 API
|
5月前
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
|
5月前
|
移动开发 网络协议 编译器
实战案例3:C语言实现的HTTP服务器
实战案例3:C语言实现的HTTP服务器
334 0