Windows实例默认采用WSUS(Windows Server Update Services)获取更新源会导致.NET Framework和语言包安装文件缺失,可能会上报找不到源文件或者无法安装语言包等错误。本文介绍如何通过将更新源从WSUS切换为Windows Update,解决无法安装.NET Framework 3.5或语言包的问题。
本文档适用于Windows Server 2012 R2、Windows Server 2016和Windows Server 2019系统。
如果您是Windows Server 2012 R2系统且安装的是2023年06月之后的官方镜像,会存在因为安全补丁而导致无法安装.NET Framework 3.5的问题,针对该问题请参考Windows Server 2012 R2安装.NET 3.5失败的问题解决。
如果您需继续使用Windows Server 2012 R2系统,建议您在ECS管理控制台的社区镜像中直接使用已安装.NET Framework 3.5的Windows Server 2012 R2镜像(win2012r2_9600_x64_dtc_zh-cn_40G_.Net3.5_alibase_20231204.vhd和win2012r2_9600_x64_dtc_en-us_40G_.Net3.5_alibase_20231204.vhd )去创建ECS实例。关于如何查找这两款镜像,请参见查找镜像。
问题描述
问题一:.NET Framework报错找不到源文件。
在Windows Server 2012 R2、Windows Server 2016或Windows Server 2019系统中安装.NET Framework 3.5时,报如下图所示的错误。
问题二:无法安装语言包 。
在控制面板中切换语言或者Windows Update中查询语言选项时,无法选择或者安装语言包。
问题原因
由于Windows实例默认采用WSUS获取更新源,如果在WSUS服务器上没有同步包含.NET Framework 3.5或相应语言包的更新内容,那么Windows实例就无法通过WSUS获取这些更新,就会导致.NET Framework和语言包安装文件缺失,所以上报找不到源文件或者无法安装语言包的相关错误。
解决方案
远程连接Windows实例。
具体操作,请参见使用Workbench工具以RDP协议登录Windows实例。
打开CMD命令行窗口。
输入
powershell
进入PowerShell交互界面。运行以下命令,修改注册表将更新源设置为Windows Update。
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name UseWUServer -Value 0 Restart-Service -Name wuauserv
通过以下任意一种方式,安装.NET Framework 3.5。
说明Windows Server 2012与Windows Server 2016内存占用较高,安装其他应用程序使内存消耗更高,可能会导致内存不足引起安装.NET Framework失败,因此建议增加物理内存。如果是I/O优化实例,其具备较高的磁盘I/O能力,在处理虚拟内存读写时相比普通实例能更快地完成数据交换,从而减小对系统性能的影响,因此可以考虑如何配置Windows实例的虚拟内存。
服务器管理器UI界面安装
在服务管理器中单击添加角色和功能。
按照向导默认配置进行操作,在功能栏中选中.NET Framework 3.5功能。
继续按照向导确认结果,直至安装完成。
执行PowerShell命令安装
您可以运行以下任意一条命令:
Dism /Online /Enable-Feature /FeatureName:NetFX3 /All
Install-WindowsFeature -Name NET-Framework-Features
重要如果安装.NET Framework上报如下图所示的
0x800F0906
、0x800F081F
等错误,请参考.NET Framework 3.5 安装错误进行解决。(条件必选)如果您的Windows环境要求必须通过WSUS进行更新,运行以下命令,将更新源重新设置为WSUS。
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name UseWUServer -Value 1 Restart-Service -Name wuauserv
相关文档
.NET Framework 3.5是Microsoft提供的一个软件开发框架,它包含了用于开发和运行基于.NET技术的应用程序所需的核心类库和运行时环境。.NET Framework 3.5的语言包是与该框架配套使用的附加组件,用于支持多语言环境。有关.NET Framework的更多信息,请参见.NET Framework概述。
其他更多Windows Server版本安装.NET Framework的具体操作,请参见.NET Framework安装指南。
在Windows Server 2016及更高版本上安装3.5/4.x版本的.NET Framework:在Windows Server 2016及更高版本上安装 .NET Framework。
在Windows Server 2022上安装3.5/4.x版本的.NET Framework:在 Windows Server 2022上安装 .NET Framework。