1. 程式人生 > >IIS崩潰(死迴圈)

IIS崩潰(死迴圈)

現象:站點經常莫名其妙的卡住,無法訪問,檢視CPU,達到100%

開啟伺服器管理器->診斷->事件檢視器->自定義檢視->伺服器角色->Web伺服器(IIS),有一大堆的報錯:

5002:應用程式池“xx2016”將被自動禁用,原因是為此應用程式池提供服務的程序中出現一系列錯誤。

5010:為應用程式池“xx2016”提供服務的程序未能響應 Ping。程序 ID 是“9444”。

5011:為應用程式池“xx2016”提供服務的程序在與 Windows Process Activation Service 通訊時出現嚴重錯誤。該程序 ID 為“4048”。資料欄位包含錯誤號。


解決方案:

方案1:WinDbg

下載對應的x86 x64版本
http://www.windbg.org/
Symbol Server (Microsoft):
srv*c:\mss2*http://msdl.microsoft.com/download/symbols
開啟dmp檔案(在c盤中搜索wer關鍵字,一般在:C:\ProgramData\Application Data\Application Data\Application Data\Microsoft\Windows\WER\ReportQueue\),找出最大的兩個檔案分別載入
執行.reload /f(強制下載Symbols)

執行!analyze -v即可看到堆疊


方案2:Debug Diagnostic Tool

Debug Diagnostic Tool=>Advanced Analysis=>Add Data Files 引入mdmp和hdmp檔案,點選Start Analysis
偶爾能夠檢測出死迴圈堆疊