我正在尝试通过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中的问题。
为简单起见,我将所有内容都作为进程内后台任务实现。
有人可以建议解决方案或解决方法吗?教程可能已经过时了吗?
答案 0 :(得分:0)
不出所料,我再次找到了自己问题的答案。
注册的后台任务不能是进程内任务,必须注册为进程外任务。
对于Windows.Networking.Sockets.WebSocketKeepAlive
入口点,我通过创建包含Windows.Networking.Sockets.WebSocketKeepAlive
并调用其Run(…)
方法的后台任务来解决方法。