Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS Worker Process (w3wp.exe) 遇到問題需關閉:DEP 防護、Temp 目錄清理與用戶配置檔重建

編輯:關於伺服器

錯誤現象

彈窗:「IIS Worker Process 遇到問題,需要關閉」,事件檢視器記錄 Application Error,故障模組 w3wp.exe,異常碼常見 0xc0000005 (存取違規) 或 DEP 違規。

IIS Worker Process 錯誤對話框

三大解決方案 (按成功率排序)

方案一:調整 DEP (資料執行防護) 設定

部分舊版 COM 組件/ISAPI 擴展與 DEP 不相容,導致 w3wp.exe 被終止。

  1. 「我的電腦」右鍵 → 「屬性」 → 「進階」 → 「效能」→「設定」。
  2. 「資料執行防護」頁籤 → 選擇 **「僅為基本 Windows 程式和服務啟用資料執行防護」**。
  3. 確定 → 重啟伺服器。

或針對性排除:選「為除下列程式以外的所有程式啟用 DEP」→ 新增 C:\Windows\System32\inetsrv\w3wp.exe。

方案二:清理 Temp 目錄並重啟 IIS

net stop w3svc
# 清理系統臨時目錄
del /q /f /s "C:\Documents and Settings\Administrator\Local Settings\Temp\*"
del /q /f /s "C:\Windows\Temp\*"
# 重建 ASP.NET 臨時編譯目錄
mkdir "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files"
icacls "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files" /grant "IIS_IUSRS:(OI)(CI)F"
net start w3svc

方案三:重建管理員用戶配置檔 (NTUSER.DAT)

若管理員帳號配置檔損毀,導致載入用戶設定時 w3wp.exe 崩潰。

  1. 建立新管理員帳號並登入驗證 IIS 正常。
  2. 或刪除舊帳號 C:\Documents and Settings\<舊管理員>\NTUSER.DAT (隱藏檔),重新登入自動重建。

根因分類總結

進階診斷

  • 啟用 **DebugDiag** 或 **ProcDump** 捕獲 Dump:
    procdump -ma -e 1 -w w3wp.exe C:\Dumps\
  • WinDbg 分析 !analyze -v 定位故障模組與堆疊。
  • 啟用 IIS **失敗請求追蹤 (FREB)** 記錄 500 錯誤完整管線。
Copyright © Windows教程網 All Rights Reserved
類別典型誘因對應方案
DEP 衝突舊版 ISAPI/COM 組件、第三方模組 (URLRewrite 舊版、舊版 PHP ISAPI)方案一
Temp 目錄損壞/權限錯誤清理腳本誤刪、磁碟滿、權限遺失方案二
用戶配置檔損毀登入/登出異常、磁碟錯誤、病毒掃描鎖定方案三
程式碼邏輯錯誤無限遞歸、未處理例外、非受控代碼存取違規開發端修復、啟用 Failed Request Tracing