首页 文章

在UWP后台任务中使用Web套接字

提问于
浏览
0

我正在尝试为UWP应用程序进行后台任务 . 该任务应该由来自Web套接字连接的数据包触发 .

我测试了Web套接字,它按预期工作 .

要使后台任务起作用,根据Microsoft后台网络教程(Network communications in the background),必须实例化 ControlChannelTrigger 并且必须调用channel.UsingTransport(socket)方法 . 然后应该调用socket.ConnectAsync(...) .

但是,在 channel.UsingTransport(socket) 之后调用 socket.ConnectAsync(...) 时, socket.ConnectAsync(...) 方法会抛出异常,并显示以下消息 .

HRESULT的异常:0x80072F75

在没有 channel.UsingTransport(socket) 的情况下调用时, Build 连接没有问题 .

为了在后台任务中使用套接字,我必须在调用 channel.UsingTransport(socket) 之后 Build 连接 .

任何人都可以解释为什么会出现这种错误?

1 回答

  • 1

    请不要在同一设备上安装IIS服务器,并使用localhost连接服务器 . 见network isolation主题 . 在官方WebSocket sample中使用服务器时,您可以尝试将服务器文件夹及其子文件夹复制到另一台计算机并运行服务器脚本,然后您可以使用以下IP地址连接服务器:

    服务器uri:ws://xxx.xx.xx.xx/WebSocketSample/echowebsocket.ashx

    此外,请尝试测试ControlChannelTrigger StreamWebSocket样本 .

    另请参阅示例中的Note部分:

    与提供的脚本一起使用时,此Windows应用商店应用示例通过环回与同一台计算机上的另一个进程(IIS服务器,即桌面应用)进行通信,仅用于演示目的 . 不允许通过环回与另一个代表Windows应用商店应用的进程通信的Windows应用商店应用,此类应用不会通过商店验证 . 有关更多信息,请参阅如何配置网络隔离功能 .

相关问题