Microsoft Store 无法下载:WinHTTP 与 AppContainer 的完整修复记录
从 0x80072EFD/0x80072EFE 定位到 WinHTTP 与 AppContainer 环回隔离
问题现象
Microsoft Store 可以打开商品页,但点击“安装/更新”后立刻失败。事件查看器中反复出现:
0x80072EFD:无法连接服务器0x80072EFE:连接被中断0x803FB01A:商城安装流程的后续失败Unexpected error from IUpdateSearcher::Search
常规检查却没有异常:商城包状态正常、磁盘空间充足、Windows Update、InstallService、AppXSvc 等服务均可用,wsreset.exe 也能成功执行。
真正原因:商城使用了两条网络路径
问题不在 Microsoft Store 缓存,而在 Windows 的网络分层:
- 商城页面运行在 AppContainer 中。即使 Windows 系统代理指向
127.0.0.1:7890,AppContainer 默认也不能访问本机环回代理。 - 商城下载依赖 Windows Update / WinHTTP。WinHTTP 有独立代理配置,并不会自动跟随“设置 → 网络和 Internet → 代理”中的用户代理。
因此会出现一个很迷惑的现象:浏览器、curl,甚至商城页面能联网,但真正下载包的后台搜索器仍然直连并失败。
可以用下面的 PowerShell 只读测试 Windows Update 搜索器:
$session = New-Object -ComObject Microsoft.Update.Session
$searcher = $session.CreateUpdateSearcher()
$result = $searcher.Search("IsInstalled=0 and Type='Software'")
$result | Select-Object ResultCode, @{n='Updates';e={$_.Updates.Count}}
修复前通常直接抛出 0x80072EFD。
修复方法
前提:FlClash 已运行,监听 127.0.0.1:7890,并且使用全局模式。若你的本地代理端口不同,请替换命令中的端口。
以管理员身份打开终端,执行:
netsh winhttp set proxy 127.0.0.1:7890 "<local>"
CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.WindowsStore_8wekyb3d8bbwe
第一条让 Windows Update 等 WinHTTP 客户端使用本地代理;第二条只给 Microsoft Store 添加环回访问权限,不会放开其他 AppContainer。
随后重启商城:
taskkill /F /IM WinStore.App.exe
start ms-windows-store:
再次运行上面的 Windows Update COM 搜索。如果 ResultCode 返回 2,并能得到更新数量,说明后台下载通道已经恢复。此时商城日志中也不应继续出现 0x80072EFD/0x80072EFE。
下载完成后恢复
这两项配置不建议长期保留。FlClash 退出后,仍指向 127.0.0.1:7890 的 WinHTTP 客户端会无法联网;环回例外也应遵循“用完即删”的原则。
管理员终端执行:
netsh winhttp reset proxy
CheckNetIsolation.exe LoopbackExempt -d -n=Microsoft.WindowsStore_8wekyb3d8bbwe
验证恢复状态:
netsh winhttp show proxy
CheckNetIsolation.exe LoopbackExempt -s
WinHTTP 应显示 Direct access (no proxy server),环回例外列表中不再包含 microsoft.windowsstore_8wekyb3d8bbwe。
可选:做成双击开关
可以把上述命令做成管理员 .cmd:选 1 设置 WinHTTP 代理并添加 Store 环回例外,选 2 恢复直连并删除例外。批处理建议使用纯 ASCII 文本和 Windows CRLF 换行,避免 UTF-8 中文字符在旧版 cmd.exe 中被错误解析、导致多行命令粘连。
排障结论
遇到 Microsoft Store 能浏览却不能下载时,不要只反复清缓存或重装商城。先确认失败是否来自 IUpdateSearcher::Search,再分别检查:
- WinHTTP 是否仍在直连
- 本地代理是否真正代理了 Windows Update 域名
- Store AppContainer 是否具备访问本地代理的环回权限
把页面网络、WinHTTP 后台下载和 AppContainer 隔离这三层分开验证,通常能快速定位这类问题。