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

简介:
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
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
5月前
|
运维 网络协议 安全
为什么经过IPSec隧道后HTTPS会访问不通?一次隧道环境下的实战分析
本文介绍了一个典型的 HTTPS 无法访问问题的排查过程。问题表现为 HTTP 正常而 HTTPS 无法打开,最终发现是由于 MTU 设置不当导致报文被丢弃。HTTPS 因禁止分片,对 MTU 更敏感。解决方案包括调整 MSS 或中间设备干预。
|
7月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1166 23
|
5月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
6月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
6月前
|
Web App开发 缓存 数据安全/隐私保护
Django全栈实战:HTTP状态码与业务状态码的分层设计与实战应用
HTTP状态码是服务器响应请求的3位数字代码,分为1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)。业务状态码则用于描述具体业务逻辑结果,常在响应体中返回。二者在前后端交互中有不同用途和处理方式。本文还介绍了如何在Django项目中设计并使用业务状态码。
563 0
|
9月前
|
缓存 安全 Java
深入解析HTTP请求方法:Spring Boot实战与最佳实践
这篇博客结合了HTTP规范、Spring Boot实现和实际工程经验,通过代码示例、对比表格和架构图等方式,系统性地讲解了不同HTTP方法的应用场景和最佳实践。
906 5
|
10月前
|
缓存 安全 数据处理
Objective-C开发:从HTTP请求到文件存储的实战
Objective-C开发:从HTTP请求到文件存储的实战
|
分布式计算 Hadoop Devops
Hadoop集群配置https实战案例
本文提供了一个实战案例,详细介绍了如何在Hadoop集群中配置HTTPS,包括生成私钥和证书文件、配置keystore和truststore、修改hdfs-site.xml和ssl-client.xml文件,以及重启Hadoop集群的步骤,并提供了一些常见问题的故障排除方法。
421 3
Hadoop集群配置https实战案例
|
数据采集 网络协议 API
HTTP协议大揭秘!Python requests库实战,让网络请求变得简单高效
【9月更文挑战第13天】在数字化时代,互联网成为信息传输的核心平台,HTTP协议作为基石,定义了客户端与服务器间的数据传输规则。直接处理HTTP请求复杂繁琐,但Python的`requests`库提供了一个简洁强大的接口,简化了这一过程。HTTP协议采用请求与响应模式,无状态且结构化设计,使其能灵活处理各种数据交换。
248 8
|
机器学习/深度学习 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
在数据驱动的时代,网络数据抓取对于数据分析、机器学习等至关重要。HTTP协议作为互联网通信的基石,其重要性不言而喻。Python的`requests`库凭借简洁的API和强大的功能,成为网络数据抓取的利器。本文将通过实战演练展示如何使用`requests`库进行数据抓取,包括发送GET/POST请求、处理JSON响应及添加自定义请求头等。首先,请确保已安装`requests`库,可通过`pip install requests`进行安装。接下来,我们将逐一介绍如何利用`requests`库探索网络世界,助你成为数据抓取大师。在实践过程中,务必遵守相关法律法规和网站使用条款,做到技术与道德并重。
274 3

热门文章

最新文章