Iis

Windows 程序啟動服務失敗 - Windows 10

  • November 8, 2020

Windows 程序啟動服務 (WAS) 將不再在我的 Windows 10 PC 上啟動。因此,IIS 將無法啟動。我不太確定它是什麼時候發生的,但可能是在上個月。

在啟動期間,我現在在系統日誌中收到一系列 4 個錯誤事件:

WAS 5215:Windows Process Activation Service (WAS) 未能執行離線設置的初始化。數據欄位包含錯誤號。

$$ Data field: 50000780 $$ WAS 5005:Windows Process Activation Service (WAS) 正在停止,因為它遇到了錯誤。數據欄位包含錯誤號。

$$ Data field: 50000780 $$ 服務控制管理器 7023:WAS 服務因以下錯誤而終止:文件存在。

服務控制管理器 7001:W3SVC 服務依賴於由於以下錯誤而無法啟動的 WAS 服務:文件存在。

由於文件存在錯誤,我對此類錯誤的引用並不多。

(我嘗試使用 ProcMon 來嘗試辨識它所指的文件,但它絕對拒絕執行。)


編輯…終於讓 ProcMon 工作(在使用 VS2017 提取 64 位版本之後)。原來導致上述問題的文件是C:\Windows\System32\inetsrv\Config文件夾中的“applicationhost.config.tmp”文件。刪除該文件允許該過程進一步繼續。

現在,第一個和第三個錯誤是:

WAS 5215:Windows Process Activation Service (WAS) 未能執行離線設置的初始化。數據欄位包含錯誤號。

$$ Data field: 0D000780 $$ 服務控制管理器 7023:Windows 程序啟動服務服務因以下錯誤而終止:數據無效。


根據 Yanbing Shi 的回答,以下是文件中的最新行iis.log

[01/13/2018 23:10:41] [ ***** IIS 10.0 Component Based Setup ***** ] [01/13/2018 23:10:41] .\inetsrv\iissetup.exe /install SharedLibraries /nano [01/13/2018 23:10:41] Setting Installation Type to Nano [01/13/2018 23:10:41] Successfully added IIS_IUSRS ACE to DACL at %ProgramData%\Microsoft\Windows\WER\ReportQueue. [01/13/2018 23:10:42] < !!FAIL!! > Failed to create the NetFrameworkConfigurationKey key container (result=0x8009000f) [01/13/2018 23:10:42] < !!FAIL!! > Install of component SharedLibraries result=0x8009000f [01/13/2018 23:10:42] < !!FAIL!! > COMPONENT::ExecuteCommand result=0x8009000f [01/13/2018 23:10:42] [ End of IIS 10.0 Component Based Setup ]


In response to Yanbing Shi’s next answer

起初,我無法查看/編輯/刪除d6d986f09a1ee04e24c949879fdb506c_*文件。當我試圖查看它的權限時,我收到了一條消息:You do not have permission to view this object's security properties, even as an administrative user. 但是,我能夠將所有權更改為“管理員”,然後向該組Full授予權限,然後我就可以查看它了。該文件不是文本文件,但文件中大約 28 個字節是NetFrameworkConfigurationKey. 我將文件移出該文件夾。

然後我跑net start wasSystem error 80 has occurred. The file exists.

文件中沒有添加任何內容,iis.log但通常的錯誤事件已添加到系統事件日誌中。

然後我手動刪除了applicationhost.config.tmp文件並執行net start was. 這一次,我得到System error 13 has occurred. The data is invalid.

這一次,有新的條目iis.log

[03/18/2018 07:44:54] [ ***** IIS 10.0 Component Based Setup ***** ] [03/18/2018 07:44:54] .\inetsrv\iissetup.exe /install SharedLibraries /nano [03/18/2018 07:44:54] Setting Installation Type to Nano [03/18/2018 07:44:55] Successfully added IIS_IUSRS ACE to DACL at %ProgramData%\Microsoft\Windows\WER\ReportQueue. [03/18/2018 07:44:55] Created NetFrameworkConfigurationKey key containter [03/18/2018 07:44:56] Created NetFrameworkConfigurationKey user key [03/18/2018 07:44:56] Set ACLs on NetFrameworkConfigurationKey [03/18/2018 07:44:56] < !!FAIL!! > Failed to create the iisWasKey key container (result=0x8009000f) [03/18/2018 07:44:56] < !!FAIL!! > Install of component SharedLibraries result=0x8009000f [03/18/2018 07:44:56] < !!FAIL!! > COMPONENT::ExecuteCommand result=0x8009000f [03/18/2018 07:44:56] [ End of IIS 10.0 Component Based Setup ]

失敗是因為 WAS 在啟動期間無法訪問機器密鑰。升級後第一次啟動時,如果沒有,WAS 會嘗試創建新的機器密鑰,或者查詢舊作業系統留下的舊機器密鑰。在這種情況下,存在舊的機器密鑰,但遺憾的是 WAS 無法訪問它們,原因不明。這些機器密鑰用於加密 applicationHost.config 或 web.config 中的敏感資訊(例如使用者密碼)。如果沒有可以使用的機器密鑰,WAS 將無法啟動。

以下刪除 IIS 使用的幾個機器密鑰的步驟可能有助於允許 WAS 啟動 - WAS 將在啟動時簡單地重新創建這些密鑰。

  1. 轉到您的 RSA 機器密鑰文件夾:C:\Users\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
  2. 查找名稱以 d6d986f09a1ee04e24c949879fdb506c_* 開頭的機器密鑰(文件)。如果您使用記事本打開它,您應該會看到純文字“NetFrameworkConfigurationKey”。
  3. 將此文件備份到其他文件夾。
  4. 刪除此文件。
  5. 按照與2-4相同的步驟備份和刪除iisWasKey:76944fb33636aeddb9590521c2e8815a_*
  6. 按照與2-4相同的步驟備份和刪除iisConfigurationKey:6de9cb26d2b98c01ec4e9e8b34824aa2_*
  7. 手動啟動 WAS
  • 通過“以管理員身份執行”打開命令提示符。
  • 淨開始是

引用自:https://serverfault.com/questions/891302