非常有趣的一个错误,IIS 报错500.13,服务器太忙。引出来的一个技巧可以用到所有的WINDOWS版本上~
一、【症状】
- XEON处理器,4G内存,WINDOWS 2003 最新企业版,IIS 6,ASP环境。
- 应用程序池达到6个,其中有一个程序池配置了20个进程。其余5个单独运行其它应用~
- 其中一个应用的ASP程序不间断报错:500.13–服务器太忙
- 在【应用程序日志】中大量报错:The run-time environment has detected an inconsistency in its internal state.This indicates a potential instability in the process that could be caused by the custom components running in the COM+ application, the components they make use of, or other factors. Error in d:\nt\com\complus\src\comsvcs\threads\stathread.cpp(285), hr = 8007000e: CSTAThread: CoGetApartmentID failed
- 中文版本错误:运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于 COM+ 应用程序中运行自定义组件、COM+ 应用程序使用的组件或其他因素引起的。d:\nt\com\complus\src\comsvcs\threads \stathread.cpp(285)中的错误,hr = 80070008: CSTAThread: CoGetApartmentID failed
- 查看W3C版本的IIS日志,报错ASP_0148|Server_Too_Busy。
- 日志查看器中的EVENT为4689
- 使用性能查看器,查看Active Server Page-> Request Queued 队列,大于系统的Max Requsest Queued队列值。
二、【原因】
具体原因可参考【参考链接4】,MSDN微软官方团队的说法,针对桌面程序堆(HEAP)错误。简单的解释就是应用程序池太多,导致 DLLHOST.EXE达到最大的HEAP限制,不是WINDOWS底层的程序员,所以只明白这个错误大概的原理,具体原因还得参考【链接4】
三、【解决方案】
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows –> SharedSection = 1024,3072,512
打开注册表编辑器,将红字部分稍稍调大一些,比如1024,就可以避免堆错误。可以反复试验,也可以用链接4中的堆观察器(需要拥有最高权限才可安 装的小工具,底层驱动),观察每个进程的堆情况,进而根据IIS中应用程序池的设置,推算出最合适的大小。
===================================
四、【参考链接】
- http://bytes.com/topic/asp-classic/answers/632420-error-500-13-server-too-busy-event-4689-a
- http://forums.iis.net/p/1146213/1866717.aspx
- http://msmvps.com/blogs/alvin/archive/2008/04/07/com-the-run-time-environment-has-detected-an-inconsistency-in-its-internal-state.aspx
- http://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx
链接1为英文的问题,链接2为解决方法但作者理解不对,链接3解决方法正确,且概念正确。链接4为官方解决方案,最权威。
目前还在测试当中。未知效果如何
from http://hi.baidu.com/heartauberge/blog/item/027b213d428e07e23d6d97c3.html

延伸阅读
- IIS web站点流量监测监控/不借助第三方工具分别监控windows2003 IIS 6.0中每个站点的流量
- windows 2003 iis6 修改上传文件大小
- IIS中启用父路径
- iis 启用gz压缩,减小网络流量,加快浏览速度
- IIS配置错误"您未被授权查看该页",错误原因解析
- “常见错误 不能打开注册表关键字” 与 “Provider 错误 ’80004005′ 未指定的错误”解决手记
- iis 404不用url rewrite组件也可以实现rewrite功能:原来不是很新鲜的技术
- php在windows2003/IIS下安装php程序运行错误“您未被授权查看该页”
- 常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN 解决方法/asp+access
- MySQL/phpmyadmin问题解决手记:#2002 - 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)
- mysql多表join联查语句错误:#1241 - Operand should contain 1 column(s)
- 不用“维护计划”实现mssql定期备份并压缩存档
- yum更新遇到依赖错误的处理经验总结
- mysql错误/usr/libexec/mysqld: Out of memory (Needed xxx bytes)及The table 'pre_common_session' is full处理手记
- MySQL问题和常见错误/mysql官方文档
10000个链接就很容易出现这个问题,我现在的站点就这样了
我也有出现这个问题 进入后台总是提示这个
按文中”三、【解决方案】”一节修改注册表,似乎是可行的。