|
-
首頁(yè) > 知識(shí)庫(kù) >
Windows Server IIS 忙碌錯(cuò)誤
-
Windows Server IIS 忙碌錯(cuò)誤
一、【癥狀】
XEON處理器,4G內(nèi)存,WINDOWS 2003 最新企業(yè)版,IIS 6,ASP環(huán)境。
應(yīng)用程序池達(dá)到6個(gè),其中有一個(gè)程序池配置了20個(gè)進(jìn)程。其餘5個(gè)單獨(dú)運(yùn)行其它應(yīng)用~
其中一個(gè)應(yīng)用的ASP程序不間斷報(bào)錯(cuò):500.13--服務(wù)器太忙
在【應(yīng)用程序日誌】中大量報(bào)錯(cuò):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\comsvc??s\threads\stathread.cpp(285), hr = 8007000e: CSTAThread: CoGetApartmentID failed
中文版本錯(cuò)誤:運(yùn)行時(shí)環(huán)境檢測(cè)到其內(nèi)部狀態(tài)存在不一致。這說(shuō)明進(jìn)程中存在潛在的不穩(wěn)定性,可能是??由於COM+ 應(yīng)用程序中運(yùn)行自定義組件、COM+ 應(yīng)用程序使用的組件或其他因素引起的。 d:\nt\com\complus\src\comsvc??s\threads\stathread.cpp(285)中的錯(cuò)誤,hr = 80070008: CSTAThread: CoGetApartmentID failed
查看W3C版本的IIS日誌,報(bào)錯(cuò)ASP_0148|Server_Too_Busy。
日誌查看器中的EVENT為4689
使用性能查看器,查看Active Server Page-> Request Queued 隊(duì)列,大於系統(tǒng)的Max Requsest Queued隊(duì)列值。
二、【原因】
具體原因可參考【參考鏈接4】,MSDN微軟官方團(tuán)隊(duì)的說(shuō)法,針對(duì)桌面程序堆(HEAP)錯(cuò)誤。簡(jiǎn)單的解釋就是應(yīng)用程序池太多,導(dǎo)致DLLHOST.EXE達(dá)到最大的HEAP限制,不是WINDOWS底層的程序員,所以只明白這個(gè)錯(cuò)誤大概的原理,具體原因還得參考【鏈接4】
三、【解決方案】
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows --> SharedSection = 1024,3072,512
打開(kāi)註冊(cè)表編輯器,將512的部分稍稍調(diào)大一些,比如1024,就可以避免堆錯(cuò)誤??梢苑囱}試驗(yàn),也可以用鏈接4中的堆觀察器(需要擁有最高權(quán)限才可安裝的小工具,底層驅(qū)動(dòng)),觀察每個(gè)進(jìn)程的堆情況,進(jìn)而根據(jù)IIS中應(yīng)用程序池的設(shè)置,推算出最合適的大小??。
四、【參考鏈接】
1
2
3
4
鏈接1為英文的問(wèn)題,鏈接2為解決方法但作者理解不對(duì),鏈接3解決方法正確,且概念正確。鏈接4為官方解決方案,最權(quán)威。
|