【发布时间】:2017-10-21 15:57:43
【问题描述】:
我们已经实现了一个带有背板的服务器,其中有 100 多个客户端正在连接。但是当我们对其进行测试时,我们发现当客户端断开连接时,它们都无法重新连接。我们还注意到 w3wp.exe 使用大量线程(超过 5000 个),然后 IIS 崩溃。
为了确定造成这种情况的原因,我们清理了集线器,发现当记录器类被移除后,背板工作正常。我们使用了 NLog 记录器并将其作为静态记录器启动。
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
为了确认 NLog 是否有问题,我们在集线器类中创建了另一个静态对象,但它也显示出同样高的线程使用率。因此,似乎只要有静态对象,客户端就无法重新连接,并且 w3wp.exe 服务中的线程使用率很高。造成这种情况的原因是什么?
PS- 我们使用 SQL 和 redis 背板进行了测试,结果完全相同。
【问题讨论】:
标签: c# sql redis signalr signalr-backplane