You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8 SignalR存在连接时关闭卡顿25秒的Bug求助

问题:SignalR WebSocket连接存在时,.NET 8服务器关闭卡顿25秒

现象描述

  • 基于.NET 8搭建的服务器,包含多个控制器和一个无任何自定义逻辑的空SignalR Hub
  • 无活跃Hub连接时,服务器可立即正常关闭
  • 当存在已建立的Hub连接(仅在JS客户端刷新并创建连接时触发此问题),关闭流程会卡顿约25秒:先等待约5秒触发IHostApplicationLifetime.ApplicationStopping,再等待20秒才完全退出

排查信息

  • 调试时仅能看到无法单步执行的外部代码,暂未定位到具体原因,推测可能是某处代码请求客户端优雅退出后超时
  • 仅在WebSockets传输模式下出现此问题,Long Polling或SSE方式无卡顿现象

临时缓解配置

同时设置以下两项SignalR配置,可将第二段20秒的等待时间缩短至10秒;注释其中任意一项,等待时间都会恢复为20秒:

services.AddSignalR(c =>
{
  c.HandshakeTimeout = TimeSpan.FromSeconds(1);
  c.KeepAliveInterval = TimeSpan.FromSeconds(1);
});

内容的提问来源于stack exchange,提问作者Andreas Zita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 13:42:05