簡體   English   中英

在 Windows 10 上安裝 IIS 時出現錯誤 0x800f0922:“無法完成更改。”

[英]Error 0x800f0922 when installing IIS on Windows 10: “The changes couldn't be completed.”

在 Windows 10 企業版 1703 的新安裝中,我嘗試打開 IIS 功能,選擇默認選項,通過“打開或關閉 Windows 功能”,但遇到了如下所示的錯誤:

Windows 功能錯誤

然后我嘗試使用 DISM 安裝該功能。 我打開一個管理員命令提示符並輸入:

Dism /Online /Enable-Feature /FeatureName:IIS-DefaultDocument /All

這應該與為 IIS 安裝默認功能集相同。 這也因相同的錯誤代碼 0x800f0922 而失敗。

最后,我嘗試從“打開和關閉 Windows 功能”菜單中一次選擇一個 IIS 元素。 這一直有效,直到我嘗試安裝“HTTP 錯誤”,這再次產生了上面的窗口。

運行此命令:

Dism /Online /Enable-Feature /FeatureName:IIS-HttpErrors /All

導致了同樣的錯誤。

我該如何解決這個問題?

觸摸文件C:\\inetpub\\custerr\\en-US\\401-1.htm ,在路徑中創建任何丟失的目錄,然后再次運行安裝程序。

更多信息:

我查看了位於C:\\Windows\\Logs\\DISM\\dism.log DISM 日志文件,並發現以下錯誤行:

2017-10-09 13:43:28, Error                 DISM   DISM Package Manager: PID=4280 TID=14940 Failed finalizing changes. - CDISMPackageManager::Internal_Finalize(hr:0x800f0922)
2017-10-09 13:43:28, Error                 DISM   DISM Package Manager: PID=4280 TID=14940 Failed processing package changes with session options - CDISMPackageManager::ProcessChangesWithOptions(hr:0x800f0922)
2017-10-09 13:43:28, Error                 DISM   DISM Package Manager: PID=4280 TID=14940 Failed ProcessChanges. - CPackageManagerCLIHandler::Private_ProcessFeatureChange(hr:0x800f0922)
2017-10-09 13:43:28, Error                 DISM   DISM Package Manager: PID=4280 TID=14940 Failed while processing command enable-feature. - CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800f0922)
2017-10-09 13:43:28, Info                  DISM   DISM Package Manager: PID=4280 TID=14940 Further logs for online package and feature related operations can be found at %WINDIR%\logs\CBS\cbs.log - CPackageManagerCLIHandler::ExecuteCmdLine
2017-10-09 13:43:28, Error                 DISM   DISM.EXE: DISM Package Manager processed the command line but failed. HRESULT=800F0922

按照建議,我檢查了位於C:\\Windows\\Logs\\CBS\\CBS.log ,發現以下行具有相同的時間戳:

2017-10-09 13:43:28, Error                 CSI    00000096 (F) STATUS_OBJECT_PATH_NOT_FOUND #5294871# from Windows::Rtl::SystemImplementation::DirectFileSystemProvider::SysCreateFile(flags = (AllowSharingViolation|AllowAccessDenied), handle = {provider=NULL, handle=0, name= ("null")}, da = (FILE_GENERIC_READ|DELETE|WRITE_DAC|WRITE_OWNER|FILE_WRITE_ATTRIBUTES|FILE_WRITE_EA|FILE_APPEND_DATA|FILE_WRITE_DATA|0x00000040), oa = @0x92431fdd18->OBJECT_ATTRIBUTES {s:48; rd:NULL; on:[38]'\??\C:\inetpub\custerr\en-US\401-1.htm'; a:(OBJ_CASE_INSENSITIVE)}, iosb = @0x92431fdd78, as = (null), fa = (FILE_ATTRIBUTE_NORMAL), sa = (FILE_SHARE_READ|FILE_SHARE_WRITE), cd = 5, co = (FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT|0x00004000), eab = NULL, eal = 0, disp = Invalid)

我能夠確定它正在尋找路徑C:\\inetpub\\custerr\\en-US\\401-1.htm並且找不到它。 果然,那條路根本不存在。

首先,我嘗試通過授予用戶對象Everyone 對inetpub 的完全控制訪問權來測試權限。 我知道,這並不理想,但值得對其進行測試。 我再次運行該 DISM 命令以添加 HttpErrors,但仍然失敗。 最后,我剛剛創建了目錄custerren-US ,以及一個名為401-1.htm的空白文本文件,最后一次嘗試了 DISM。 該文件夾立即填充了其余的 HTTP 錯誤頁面,安裝完成。

希望這可以幫助某人。

我創建了兩個目錄路徑/空文件,沒有任何更改。 但是 - 我選擇安裝 -only- IIS Metabase 和 IIS 6 配置兼容性。 當我另外選擇安裝 IIS 管理控制台時,程序成功運行至完成。

我必須先卸載 Windows Process Activation Service 功能,重新啟動,然后才能正確安裝 IIS。

禁用邁克菲為我解決了這個問題。

我遇到了這個錯誤,但是只要堅持使用“控制面板”就能安裝 IIS | 節目 | 打開和關閉 Windows 功能。 當我第一次啟動它時,如果我只是選擇了頂級 Internet 信息服務,就像我對其他所有計算機和每個其他版本的 Windows 所做的那樣,我會反復收到此響應。 無論是否運行我的防病毒軟件(在我的情況下是 ZoneAlarm 和 MalwareBytes)。

我通過擴展功能列表中的 IIS 條目來解決這個問題,並且一次只安裝幾個單獨的項目。 雖然我發現每個子組件都已成功安裝,但一開始我的目標只是深入了解問題所在。

優點:一切安裝正常,只有一個子組件需要我重新啟動(甚至可能是因為我也借此機會擺脫了 IE11)。 而且我認為我不必追蹤導致此問題的實際 MS 錯誤是件好事。 缺點:在主 IIS 選項下可能有 30 多個子組件位於三或四層中。 盡管最后一切順利,但還是花了幾個小時。

我在嘗試安裝 IIS 的請求監視器功能時遇到此錯誤。 為了排除故障,我建議檢查:

  • CBS 日志 (C:\\Windows\\Logs\\CBS)
  • DISM 日志 (C:\\Windows\\Logs\\DISM)
  • ApplicationHost.config 文件 (C:\\Windows\\System32\\inetsrv\\config)
  • Dism /Online /Cleanup-Image /ScanHealth 命令的輸出
  • Procmon 日志(使用進程監視器工具)

在我的情況下,Procmon 日志在讀取已損壞的applicationHost.config文件時顯示PARSE_ERROR_INFO 重新安裝 IIS 解決了這個問題。 來源: 0x800f0922 包 IIS-WebServer-Core-Package 的更新 IIS-RequestMonitor 失敗

在此處輸入圖片說明

在 Windows 10 版本 1909 上,我必須先安裝“IIS 管理控制台”功能。 然后我能夠在 IIS 6 Management Compatibility 文件夾下添加功能而不會出現 0x800f0922 錯誤。

我能夠同時添加 [IIS 6 管理控制台] 和 [IIS 元數據庫和 IIS 6 配置兼容性]。

然后我能夠安裝需要這些作為先決條件的程序,Exchange Management Console 2010 bayy-bee! 耶耶耶。

我在 Windows Server 2012 R2 中遇到了同樣的問題。 在我的情況下,它在 Windows 更新上運行所有掛起的更新后解決了(即使是可選的,它也是其中之一)

我通過擴展功能列表中的 IIS 條目並一次安裝每個單獨的項目來解決這個問題

IIS 文件夾中的所有配置文件也必須存在 位置:C:\\Windows\\System32\\inetsrv\\config\\

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM