一、问题及原因
如图:
相关软件里面只设置域名策略,使微软商店直连不走代理,也是不起作用的,必须关闭代理。
去微软官网即找到原因:排查UWP应用连接问题
UWP 应用网络连接问题通常是由以下原因引起的:
- 不允许 UWP 应用程序接收环回流量。 必须配置此权限。 默认情况下,不允许 UWP 应用程序接收环回流量
- UWP 应用缺少适当的功能令牌
- 专用范围配置不正确。 例如,通过 GP/MDM 策略等错误地设置了专用范围。
若要更全面地了解这些原因,请查看几个概念。
Windows 上允许哪些内容和不) 的网络数据包流量 (由 Windows 筛选平台 (WFP) 确定。 当 UWP 应用或专用范围配置不正确时,会影响 WFP 处理 UWP 应用的网络流量的方式。
当 WFP 处理数据包时,该数据包的特征必须显式匹配筛选器的所有条件,以允许或丢弃到其目标地址。 当数据包与任何筛选条件都不匹配时,通常会发生连接问题,从而导致默认块筛选器丢弃数据包。 默认块筛选器的存在可确保 UWP 应用程序的网络隔离。 具体而言,它保证对尝试访问的资源没有正确功能的数据包的网络丢弃。 这种数据包丢弃可确保应用程序对每种资源类型的精细访问,并防止应用程序转义其环境。
原因就是第一条:不允许 UWP 应用程序接收环回流量。
二、解决方法
使用CheckNetIsolation
这个Windows自带功能(程序)将微软商店添加到环回免除列表就可以了。
语法: CheckNetIsolation LoopbackExempt [operation] [-n=] [-p=]
操作列表: -a - 将 AppContainer 或包系列添加到环回 免除列表。 -d - 将 AppContainer 或包系列从 环回免除列表中删除。 -c - 清除环回免除 AppContainers 和 包系列的列表。 -s - 显示环回免除的 AppContainers 和 包系列列表。 -is - 启用 AppContainer 或包系列以接收 入站连接。 参数列表: -n= - AppContainer 名称或包系列名称。 -p= - AppContainer 或包系列安全标识符 (SID)。 -? - 显示 LoopbackExempt 模块的此帮助消息。
添加、移除、查询的操作这里已经说清楚了。
我测试后使用 -a -p=SID
这个参数可以成功操作。
(1)获取微软商店的SID。
运行中输入Regedit打开注册表,或者直接搜索栏搜注册表也行。
找到:HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings
目录,接着在左边的注册表项中找到你想解除网络隔离的应用(方向键可以移动选择),右边的 DisplayName
显示的就是应用名称,而左边那一串字符就是应用对应的的 SID
值了。
找到名称是DisplayName是Microsoft Store的,复制SID值即可。
(2)添加到环回免除列表
以管理员身份打开cmd或者powershell。搜索栏搜索,右键即有此选项,或者win r输入wt,在展开选项下右键也可:
命令(替换你的SID即可):
CheckNetIsolation LoopbackExempt -a -p=S-1-xxx
(3)检查确认
CheckNetIsolation LoopbackExempt -S
输出如:
PS C:\Users\14134> CheckNetIsolation LoopbackExempt -S
列出环回免除的 AppContainer
[1] -----------------------------------------------------------------
名称: microsoft.windowsstore_8wekyb3d8bbwe
SID: S-1-xxx
(4)验证
如果其他Windows软件遇到类似情况,操作类似。
三、UWP
UWP代表通用Windows平台(Universal Windows Platform
)。它是由微软推出的一个应用程序开发框架,旨在让开发人员能够创建可以在多种设备上运行的应用程序,包括PC、平板电脑、手机、Xbox以及其他支持Windows 10的设备。UWP应用程序可以通过单一的代码库进行开发,并且可以在不同设备上实现响应式设计,以适应不同屏幕尺寸和形态。
UWP具有以下几个主要特点:
-
跨设备支持: UWP应用程序可以在多种设备上运行,包括PC、平板电脑、手机、Xbox和其他支持Windows 10的设备。开发人员可以通过一套代码库创建应用程序,并且应用程序可以根据设备的特性进行适应性调整。
-
统一的应用商店: UWP应用程序可以通过Windows Store分发和管理。用户可以从单一的商店平台获取并更新他们的应用程序,这为开发人员提供了一个方便的分发渠道。
-
响应式设计: UWP支持响应式设计,允许应用程序在不同的设备上提供优化的用户体验。开发人员可以根据设备的屏幕尺寸、分辨率和形状进行布局和控制。
-
API和功能集成: UWP提供了丰富的API集合,涵盖了设备的核心功能,如图形处理、传感器数据、用户输入等。这些API使开发人员能够利用设备的全部潜力。
-
安全性和更新管理: UWP应用程序通过沙箱机制增强安全性,限制了应用程序对系统的访问权限。此外,应用程序的更新可以由Windows Store自动处理,简化了用户和开发人员的管理工作。
开发UWP应用程序通常使用以下工具和语言:
-
开发工具:
- Visual Studio: 微软的集成开发环境 (IDE),特别是最新版本的 Visual Studio,如 Visual Studio 2022。
- Visual Studio Code: 轻量级的跨平台开发工具,也可以用于UWP应用程序的开发,虽然它的功能没有Visual Studio完整。
-
开发语言:
- C#: C#是UWP应用程序的主要开发语言。它是一种现代化、类型安全的语言,与.NET平台紧密集成,提供了丰富的库和功能。
- XAML: Extensible Application Markup Language,是一种用于定义用户界面的声明性语言。开发者可以使用XAML来设计应用程序的界面布局和外观。
- JavaScript: UWP应用程序也可以使用JavaScript和HTML/CSS进行开发。这种方式更适合基于Web技术的应用程序,如响应式网页和轻量级应用。
微软商店并不仅限于UWP应用程序,但UWP应用程序确实是其主要支持的应用类型之一。微软商店支持多种类型的应用程序,包括但不限于:
-
UWP应用程序: 这些应用程序是为通用Windows平台(Universal Windows Platform)设计的,可以在各种设备上运行,包括PC、平板电脑、手机、Xbox等。它们采用XAML和C#、C++/CX、JavaScript等技术进行开发。
-
Win32桌面应用程序: 传统的Win32桌面应用程序也可以在微软商店中发布。这些应用程序通常使用传统的Windows API和桌面技术进行开发,如使用C++、C#、或者其他支持的编程语言。
-
桥接应用程序: 这些应用程序通过微软提供的桥接工具,如Desktop Bridge(以前称为Centennial),将现有的Win32应用程序打包为UWP应用程序,以便能够在微软商店中分发。(比如微信、QQ)
-
Web应用程序和扩展: 微软商店也支持基于Web技术的应用程序,如使用HTML、CSS和JavaScript开发的应用程序,以及Edge浏览器的扩展。
微软商店的软件和软件官网的软件相比: 功能会受到限制或调整、更新频率和时效性低、安全、安装方便。