在我们的webapi代码中,我们使用SignalR和redis背板。我看到了我们的代码在某个时候挂起的问题。
StackExchange.Redis.StrongName.dll!StackExchange.Redis.SocketManager.WriteAllQueues() 288号线
实际上,缓存数据的代码可以工作(我可以看到数据在redis服务器中得到填充),但是在一对web请求/响应之后,代码挂起。我已经安装了最新的软件包'StackExchange.Redis 1.1.608‘。不幸的是,在VS中,我没有在堆栈中看到我的代码。
任何想法,什么可能是错误的,或在哪里寻找问题。我希望我能把更多的细节放在这里,但这是我的全部。谢谢!
以下是在VS Thread中单击“断线”时线程的快照:

发布于 2019-04-01 20:12:58
这些是线程由StackExchange.Redis库创建,用于读取和写入连接到Redis的套接字。
写入线程在WriteAllQueues()中被阻塞是正常的,因为它正在调用Monitor.Wait()。当有工作要做时,线程将被唤醒。
读取线程可能阻止从套接字读取,但我在源代码中找不到这种情况发生的地方。
https://stackoverflow.com/questions/40505063
复制相似问题