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
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
IIS上实现网站朝https://www的自动跳转
我们在做网站时时常有网站朝https://www的自动跳转的需求,以便在不输入www.子域名时也可以自动跳转到我们的当前站点,本文将介绍实现网站朝https://www的自动跳转的操作。
62 0
IIS上实现网站朝https://www的自动跳转
|
4月前
|
XML JSON Java
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
143 0
|
1月前
|
存储 网络安全 数据安全/隐私保护
Windows Server 2019 IIS HTTPS证书部署流程详解
Windows Server 2019 IIS HTTPS证书部署流程详解
|
1月前
|
负载均衡 数据库连接 API
什么是HTTP 500错误,怎么解决
什么是HTTP 500错误,怎么解决
109 0
|
1月前
|
JSON Go API
Go语言网络编程:HTTP客户端开发实战
【2月更文挑战第12天】本文将深入探讨使用Go语言开发HTTP客户端的技术细节,包括发送GET和POST请求、处理响应、错误处理、设置请求头、使用Cookie等方面。通过实例演示和代码解析,帮助读者掌握构建高效、可靠的HTTP客户端的关键技术。
|
4月前
|
XML Java 定位技术
Android Studio App开发之网络通信中使用GET方式调用HTTP接口的讲解及实战(附源码 超详细必看)
Android Studio App开发之网络通信中使用GET方式调用HTTP接口的讲解及实战(附源码 超详细必看)
56 0
|
Web App开发 网络安全
iis上如何架设HTTPS网站
对于HTTPS网站,大部分都比较陌生,觉得很难,其实只要申请好证书,只要在服务器上做下小配置就可以完成 首先,申请一个ssl证书 免费申请https://buy.wosign.com/free/FreeSSL.
1088 0