后台UWP网络通信

UWP network communication in the background

我正在尝试阅读标题为 Network communications in the background 的 UWP 中后台任务网络的官方教程。然而,由于本教程从 C++ 代码移植的很差,代码在修改为能够编译后,无法实例化 ControlChannelTrigger object 并出现 AccessDenied 异常。

下面一行抛出异常

channel = new ControlChannelTrigger(channelId, serverKeepAliveInterval,
                                    ControlChannelTriggerResourceType.RequestHardwareSlot);

我阅读了有关锁屏的评论并尝试将应用程序添加到锁屏(尽管这应该不再是一个限制),但错误仍然存​​在。

我正在尝试与我自己的服务器保持持久的 WebSocket 连接以允许推送通知(我知道 WNS,但它不是我 use-case 的正确选择)。

我的问题与相关问题ControlChannelTrigger in UWP Windows 10 access denied中的问题类似。

为简单起见,我将所有内容实现为 in-process 后台任务。

任何人都可以提出解决方案或解决方法吗?教程会不会过时了?

不出所料,我又找到了自己问题的答案

注册的后台任务不能是进程内任务,必须注册为进程外任务。

至于 Windows.Networking.Sockets.WebSocketKeepAlive 入口点,我通过创建包含 Windows.Networking.Sockets.WebSocketKeepAlive 的后台任务并调用其 Run(…) 方法来解决此问题。