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

IIS 多應用程式池以自訂身分執行導致「服務無法使用」錯誤解決方案

編輯:關於伺服器

現象

  • IIS 配置多個應用程式池使用自訂身分識別 (非 NetworkService/LocalService/LocalSystem)。
  • 部分背景工作進程 (w3wp.exe) 無法正確初始化。
  • 瀏覽器存取該應用程式池網站出現「服務無法使用」。
  • 系統事件記錄:事件 ID 1009 (來源 W3SVC) —— 「處理應用程式池 'poolname' 進程意外終止。進程退出代碼 0x80。」

同時發生於 32 位元與 64 位元 IIS。

根本原因

IIS 為每個自訂身分建立獨立桌面物件,桌面堆積 (Desktop Heap) 記憶體耗盡,導致無法建立新的背景工作進程。預設身分共用系統桌面,不受此限制。

解決方案:啟用共用桌面機制

新增登錄值 UseSharedWPDesktop,強制所有背景工作進程共用單一桌面,無論身分識別為何。

操作步驟

  1. 執行 regedit。
  2. 定位:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC
  3. 右鍵 Parameters → 新增 → DWORD (32 位元) 值 → 名稱:UseSharedWPDesktop
  4. 值設為 1。
  5. 關閉編輯器,重新啟動 IIS (iisreset)。

補充說明

  • 此登錄值為非官方文件化參數,但在 IIS 6.0/7.x 廣泛驗證有效。
  • 若仍發生問題,可嘗試增加桌面堆積大小:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Windows 中 SharedSection 參數調大第三個值 (非互動式桌面堆積)。
  • 長期建議:評估是否可改用預設內建身分 (NetworkService 等) 或減少自訂身分池數量。
Copyright © Windows教程網 All Rights Reserved