现象
有时需要使用网络代理,但是它开着的时候,电脑的UWP
应用就无法联网,比如Windows
商店和天气应用,EXE
应用不受影响。关掉代理,UWP
应用就可以正常联网了。
原理
所有UWP
应用均运行在被称为App Container
的虚拟沙箱环境中,App Container
可以保证应用安全性,但同时也阻止了网络流量发送到本机(即loopback
),使大部分网络抓包调试工具无法对UWP
应用进行流量分析。
同样的,该机制也阻止了UWP
应用访问localhost
,即使你在系统设置中启用了代理,也无法令UWP
应用访问本地代理服务器。
简单说,就是UWP
应用的虚拟沙箱有个限制拦截了发往本机的流量。
解决办法
解决的办法就是解除这个限制。
github上也有相关的issue,但解决办法并不是那么方便。issue
最简单有效的办法是下面两个脚本。有幸在一个知乎帖子的评论中找到。
脚本1
foreach ($n in (get-appxpackage).packagefamilyname) {checknetisolation loopbackexempt -a -n="$n"}
脚本2
FOR /F "tokens=11 delims=\" %p IN ('REG QUERY "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
广告
暂无评论内容