iis 错误500.13,但web站点并没有连接数限制

非常有趣的一个错误,IIS 报错500.13,服务器太忙。引出来的一个技巧可以用到所有的WINDOWS版本上~

一、【症状】

  1. XEON处理器,4G内存,WINDOWS 2003 最新企业版,IIS 6,ASP环境。
  2. 应用程序池达到6个,其中有一个程序池配置了20个进程。其余5个单独运行其它应用~
  3. 其中一个应用的ASP程序不间断报错:500.13–服务器太忙
  4. 在【应用程序日志】中大量报错: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
  5. 中文版本错误:运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于 COM+ 应用程序中运行自定义组件、COM+ 应用程序使用的组件或其他因素引起的。d:\nt\com\complus\src\comsvcs\threads \stathread.cpp(285)中的错误,hr = 80070008: CSTAThread: CoGetApartmentID failed
  6. 查看W3C版本的IIS日志,报错ASP_0148|Server_Too_Busy。
  7. 日志查看器中的EVENT为4689
  8. 使用性能查看器,查看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中应用程序池的设置,推算出最合适的大小。

===================================

四、【参考链接】

  1. http://bytes.com/topic/asp-classic/answers/632420-error-500-13-server-too-busy-event-4689-a
  2. http://forums.iis.net/p/1146213/1866717.aspx
  3. http://msmvps.com/blogs/alvin/archive/2008/04/07/com-the-run-time-environment-has-detected-an-inconsistency-in-its-internal-state.aspx
  4. 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




coded by nessus
发表评论?

3 条评论。

  1. 10000个链接就很容易出现这个问题,我现在的站点就这样了

  2. 我也有出现这个问题 进入后台总是提示这个

  3. 按文中”三、【解决方案】”一节修改注册表,似乎是可行的。

发表评论