所以我有一个 C#client
调用method
SignalR 的 a hub
,集线器将在其中返回 a DateTime
。
但是我现在遇到的行为是client
卡在HubProxy.Invoke
最后记录以下内容:
Possible deadlock detected. A callback registered with "HubProxy.On" or "Connection.Received" has been executing for at least 10 seconds.
这是的代码client
:
private async Task<long> GetCurrentServerTimeOffset()
{
DateTime requestDate = DateTime.Now;
DateTime serverDate = await hubProxy.Invoke<DateTime>("GetCurrentServerTime");
DateTime resultDate = DateTime.Now;
long offset = serverDate.Ticks - (requestDate.Ticks + resultDate.Ticks) / 2;
return offset;
}
这是的代码Hub
:
public DateTime GetCurrentServerTime()
{
return DateTime.Now;
}
我已经尝试过替换await hubProxy.Invoke<DateTime>("GetCurrentServerTime")
,hubProxy.Invoke<DateTime>("GetCurrentServerTime").Result
但它的行为相同......
有谁知道我做错了什么,导致致命警告被记录?
EDIT1:return DateTime.Now;
如果我在中放置断点hub
,则断点被命中,并且hub
将其响应发送到client
.