UWP网络通信在后台进行

时间:2018-06-13 22:12:42

标签: c# push-notification uwp background-process background-task

我正在尝试通过UWP中名为Network communications in the background的后台任务网络的官方教程。但是,由于本教程很难从C ++代码中移植,因此在修改为能够编译之后,代码在实例化ControlChannelTrigger对象时失败,并出现AccessDenied异常。

异常将在以下行引发。

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

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

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

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

为简单起见,我将所有内容都作为进程内后台任务实现。

有人可以建议解决方案或解决方法吗?教程可能已经过时了吗?

1 个答案:

答案 0 :(得分:0)

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

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

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