gpt4 book ai didi

c# - SignalR:在收到调用结果之前连接已断开

转载 作者:行者123 更新时间:2023-11-30 23:23:43 24 4
gpt4 key购买 nike

在我的一个 WCF 服务(无状态)中,我想通过 SignalR 发送消息。因为该服务是无状态的,并且集线器在另一台机器上,所以我连接到 SignalR,发送消息,然后断开连接。

proxy.Connect().Wait();
proxy.SendMessageToUsers(receiverUserNames, message).Wait();
proxy.Disconnect();

时不时会出现InvalidOperationExceptions(连接在收到调用结果前断开)。

我从这篇文章 ( C# SignalR Exception - Connection started reconnecting before invocation result was received ) 了解到 .Wait 不是一个好主意。但我想我需要等待 Connect 和 SendMessage 完成,然后再断开连接。

那么,我还能做什么呢?

最好的问候,斯特凡

最佳答案

错误是有道理的,因为代码是同步的。因此,Disconnect 可能会在收到调用结果之前被调用。

那...呢

Task.Factory.StartNew(async() => {
await proxy.Connect();
await proxy.SendMessageToUsers(receiverUserNames, message);
await proxy.Disconnect();
});

这样您就可以确保 proxy.Disconnect() 在消息发送之前不会被调用。

关于c# - SignalR:在收到调用结果之前连接已断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38200870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com