错误代码0x800F0954等表明.NET Framework 3.5安装失败主因是计量连接限制、WSUS策略拦截、缓存损坏或在线源不可用;需依次关闭按流量计费、注册表设UseWUServer为0、重置SoftwareDistribution与catroot2缓存、或用DISM指定ISO的sxs路径强制安装。

你在 Windows 10 或 Windows 11 中勾选“启用或关闭 Windows 功能”里的 .NET Framework 3.5 后,点击确定却弹出“Windows 无法完成请求的更改”,错误代码可能是 0x800F0922、0x800F0954、0x80070005 或 0x80240438——这不是系统损坏,而是安装路径被策略、缓存或网络设置堵死了,必须逐层疏通。
先关掉“按流量计费”开关
Wi-Fi 或以太网若被标记为计量连接,Windows 会直接禁止下载几百 MB 的 .NET 3.5 离线包,连尝试都不让试。
点击任务栏右下角网络图标 → 选择“网络和 Internet 设置” → 进入当前已连接的网络页面 → 找到“设为按流量计费的连接”并关闭它。
这一步做完立刻生效,不用重启。再打开“启用或关闭 Windows 功能”→勾选 .NET Framework 3.5→点确定。如果成功安装,问题就在这里。
强制系统直连 Windows 更新源
企业电脑或手动配置过 WSUS 的设备,注册表里 UseWUServer 值为 1,系统会死守内部服务器找包,而绝大多数内网服务器根本不托管 microsoft-windows-netfx3-ondemand-package.cab 文件。
方法一:改注册表
Win + R 输入 regedit → 以管理员身份运行 → 导航至:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
右侧找到 UseWUServer 项 → 双击将其数值数据改为 【0】。
方法二:重启更新服务
以管理员身份运行命令提示符 → 依次执行:
net stop wuauserv
net start wuauserv
改完立刻生效,不用重启电脑。
注意:如果注册表中根本不存在 UseWUServer 这个 DWORD 项,说明没被策略锁定,跳过此步即可。
重置 Windows Update 组件缓存
SoftwareDistribution 和 catroot2 文件夹长期积压损坏缓存,会导致系统反复从错误快照里拉取元数据,哪怕网络通畅也报 0x800F0922。
第一步:停止相关服务
以管理员身份运行命令提示符 → 依次执行:
net stop wuauserv
net stop cryptSvc
net stop bits
第二步:重命名缓存文件夹
在命令提示符中输入:
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
第三步:重启服务
net start wuauserv
net start cryptSvc
net start bits
这三步做完,系统会重建干净缓存目录。之后再试启用功能,成功率显著提升。
用 DISM 指定 ISO 镜像中的 sxs 文件夹离线安装
当网络策略、注册表、缓存全部调通仍失败,说明微软在线源暂时不可用或响应超时——此时必须甩开网络依赖,用原始镜像里的 sxs 文件夹作为安装源,这是 100% 成功的兜底方案。
准备与你当前系统版本、位数完全一致的 Windows 10/11 官方 ISO 镜像(例如 Win11 23H2 x64),双击挂载为虚拟光驱(如显示为 D: 盘)。
以管理员身份运行命令提示符,输入以下命令(把 D:\sources\sxs 替换为你实际的挂载盘符路径):
Dism /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess
等待命令执行完成,出现“操作成功完成”提示后,【必须重启计算机】,否则 .NET 3.5 不会真正生效。

















