IIS 服務發生死循環時,主要癥狀為 dllhost.exe 進程佔用 CPU 100%,導致伺服器無法正常響應。任務管理器中常見兩個同名進程:一個正常,另一個持續 90-100% 高佔用。關閉 WWW 服務重啟可暫時恢復,但 1-2 天復發,嚴重時甚至無法停止 WWW 服務,需重啟主機。長期困擾且重裝系統多次無效。
@echo off
net stop iisadmin /y
命名為 stop_iis.bat,遇到故障快速執行釋放資源。
@echo off
net start w3svc
命名為 start_iis.bat,停止後快速恢復服務。
專家提示:推薦使用 iisreset 單一指令完成重啟,更簡潔可靠。
若執行停止腳本後仍有進程佔用 CPU 100%,再次執行停止腳本強制清理,隨後啟動 WWW 服務。
將腳本封裝為服務或排程任務,配合遠程桌面(3389)執行,實現無人值守故障恢復。注意:服務中無法管理 WWW 服務本身,需謹慎設計權限控制。
僅單一站點時,逐頁點擊測試含程式頁面,定位觸發死循環的特定頁面/邏輯。
多站點環境下,逐個停用站點觀察 CPU 佔用變化,鎖定問題站點,再深入代碼層面排查。
dllhost.exe 線程行為、記憶體洩漏、句柄數異常結論:腳本重啟僅為緩解癥狀,根治需深入應用代碼層面。建議建立「監控告警 → 自動隔離 → 根因分析 → 代碼修復 → 灰度發布」完整故障處理閉環。