HRESULT = 0x80073701-ERROR_SXS_ASSEMBLY_MISSING Windows 2012 Essentials

HRESULT = 0x80073701-ERROR_SXS_ASSEMBLY_MISSING Windows 2012 Essentials

我尝试在 Windows 2012 Essentials 服务器上安装 .NET 3.5 Framework,但遇到以下错误:HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING

检查 CBS 日志后,我发现 Microsoft-Windows-ServerCore Package~31bf3856ad364e35~amd64~~6.2.9200.16384 是有问题的软件包。以下是日志的片段:

2014-12-03 15:57:55, Info                  CBS    Failed to resolve execution chain. [HRESULT =     0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-03 15:57:55, Error                 CBS    Failed to process single phase execution. [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-03 15:57:55, Info                  CBS    WER: Generating failure report for package:     Microsoft-Windows-ServerCore-Package~31bf3856ad364e35~amd64~~6.2.9200.16384, status: 0x80073701, failure     source: Resolve, start state: Installed, target state: Installed, client id: DISM Package Manager     Provider
2014-12-03 15:57:55, Info                  CBS    Not able to query DisableWerReporting flag.      Assuming not set... [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2014-12-03 15:57:55, Info                  CBS    Added C:\Windows\Logs\CBS\CBS.log to WER report.

编辑:在仔细检查了 CBS 日志后,实际错误似乎是服务器正在尝试安装西班牙语版本的 .NET

2014-12-10 08:53:39, Error                 CSI    0000000b (F) HRESULT_FROM_WIN32(ERROR_SXS_ASSEMBLY_MISSING) #623199# from Windows::ServicingAPI::CCSITransaction::ICSITransaction_PinDeployment(Flags = 0, a = Microsoft-Windows-NetFx3-Deployment-LanguagePack, Version = 6.2.9200.16384, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture = [l:10{5}]"es-ES", VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral, cb = (null), s = (null), rid = [93]"Microsoft-Windows-NetFx3-Server-OC-Package~31bf3856ad364e35~amd64~es-ES~6.2.9200.16384.NetFx3", rah = (null), manpath = (null), catpath = (null), ed = 0, disp = 0)[gle=0x80073701]

“Microsoft-Windows-NetFx3-Server-OC-Package~31bf3856ad364e35~amd64~es-ES~6.2.9200.16384.NetFx3”

答案1

我找到了解决问题的方法。为了详细说明我今天早些时候所做的编辑,CBS 日志显示 DISM 正在尝试安装 .NET 3.5 框架的英语和西班牙语版本,以下内容可以让您更好地了解正在发生的事情。

2014-12-10 08:53:39, Info                  CBS    Exec: Resolving component from existing package; passing NULL manifest path to PinDeployment and hoping things haven't been scavenged.
2014-12-10 08:53:39, Info                  CBS    Exec: Resolving Package: Microsoft-Windows-IIS-WebServer-Core-Package~31bf3856ad364e35~amd64~es-ES~6.2.9200.16384, Update: IIS-UAL, PinDeployment: amd64_microsoft-windows-i..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_es-es_5330c9534689b90c
2014-12-10 08:53:39, Info                  CBS    Exec: 315 deployments need bulk staging
2014-12-10 08:53:39, Error                 CSI    00000009@2014/12/10:13:53:39.542 (F) base\wcp\componentstore\csd_locking.cpp(216): Error STATUS_SXS_ASSEMBLY_MISSING originated in function CCSDirectTransaction::LockComponent expression: (null)
[gle=0x80004005]
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CBS.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141210133834.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141210094833.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141210083832.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141210020831.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141209210827.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Not able to add pending.xml.bad to Windows Error Report. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2014-12-10 08:53:39, Info                  CBS    Not able to add SCM.EVM to Windows Error Report. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2014-12-10 08:53:39, Error                 CSI    0000000a (F) STATUS_SXS_ASSEMBLY_MISSING #623313# from CCSDirectTransaction::OperateEnding at index 0 of 1 operations, disposition 2[gle=0xd015000c]
2014-12-10 08:53:39, Error                 CSI    0000000b (F) HRESULT_FROM_WIN32(ERROR_SXS_ASSEMBLY_MISSING) #623199# from Windows::ServicingAPI::CCSITransaction::ICSITransaction_PinDeployment(Flags = 0, a = Microsoft-Windows-NetFx3-Deployment-LanguagePack, Version = 6.2.9200.16384, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture = [l:10{5}]"es-ES", VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral, cb = (null), s = (null), rid = [93]"Microsoft-Windows-NetFx3-Server-OC-Package~31bf3856ad364e35~amd64~es-ES~6.2.9200.16384.NetFx3", rah = (null), manpath = (null), catpath = (null), ed = 0, disp = 0)[gle=0x80073701]
2014-12-10 08:53:39, Info                  CBS    Failed to pin deployment while resolving Update: Microsoft-Windows-NetFx3-Server-OC-Package~31bf3856ad364e35~amd64~es-ES~6.2.9200.16384.NetFx3 from file: (null) [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-10 08:53:39, Info                  CBS    Failed to bulk stage deployment manifest and pin deployment for package:Microsoft-Windows-ADFS-WebAgents-Package~31bf3856ad364e35~amd64~~6.2.9200.16384 [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-10 08:53:39, Info                  CSI    0000000c@2014/12/10:13:53:39.558 CSI Transaction @0xd5456110a0 destroyed
2014-12-10 08:53:39, Info                  CBS    Perf: Resolve chain complete.
2014-12-10 08:53:39, Info                  CBS    Failed to resolve execution chain. [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-10 08:53:39, Error                 CBS    Failed to process single phase execution. [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-10 08:53:39, Info                  CBS    WER: Generating failure report for package: Microsoft-Windows-ServerCore-Package~31bf3856ad364e35~amd64~~6.2.9200.16384, status: 0x80073701, failure source: Resolve, start state: Installed, target state: Installed, client id: DISM Package Manager Provider
2014-12-10 08:53:39, Info                  CBS    Not able to query DisableWerReporting flag.  Assuming not set... [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CBS.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141210133834.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141210094833.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141210083832.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141210020831.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20141209210827.log to WER report.
2014-12-10 08:53:39, Info                  CBS    Not able to add %windir%\winsxs\pending.xml.bad to WER report. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2014-12-10 08:53:39, Info                  CBS    Restored system sleep block state: 0x80000000
2014-12-10 08:53:39, Info                  CBS    Exec: Processing complete.  Session: 30413952_2937928284, Package: Microsoft-Windows-ServerCore-Package~31bf3856ad364e35~amd64~~6.2.9200.16384 [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-10 08:53:39, Error                 CBS    Failed to perform operation.  [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-10 08:53:39, Info                  CBS    Session: 30413952_2937928284 finalized. Reboot required: no [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-10 08:53:39, Info                  CBS    Failed to FinalizeEx using worker session [HRESULT = 0x80073701]

在上面的输出中,您可以看到只有西班牙语包出错了。我检查了语言资源的存储位置“C:\Windows*Language*”,发现有一个西班牙语语言包文件夹“C:\Windows\es-ES”,但该文件夹是空的。根据这些信息,很明显语言包被错误删除了,或者尝试安装但从未完成。无论哪种方式,我想到最简单的解决方案就是重新安装正确的语言包,以包含 DISM 所需的必要依赖项。

解决我的问题的步骤如下:

  1. 从 Microsoft 批量许可中心下载 Windows 2012 语言包 ISO。
  2. 安装它(在 Windows 8、8.1、2012、2012 R2 上双击)
  3. 执行以下命令安装所需的语言包。提供的命令将安装西班牙语语言包,您应该根据具体情况进行修改

    dism /online /add-package /packagepath:E:\langpacks\es-es\lp.cab 
    

    注意:“E”是 Windows 决定安装 ISO 的驱动器号,您的情况可能会有所不同。

    一旦语言包安装完毕,您的服务器将重新启动。

  4. 成功完成后,您可以通过服务器管理器中的添加角色和功能向导来安装 .Net Framework 3.5。

相关内容