我正在尝试为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 回答
请不要在同一设备上安装IIS服务器,并使用localhost连接服务器 . 见network isolation主题 . 在官方WebSocket sample中使用服务器时,您可以尝试将服务器文件夹及其子文件夹复制到另一台计算机并运行服务器脚本,然后您可以使用以下IP地址连接服务器:
服务器uri:ws://xxx.xx.xx.xx/WebSocketSample/echowebsocket.ashx
此外,请尝试测试ControlChannelTrigger StreamWebSocket样本 .
另请参阅示例中的Note部分: