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

如何在ASP.NET Core SignalR v2.1中增加超时设置?

解决ASP.NET Core 2.1 SignalR服务器超时问题

你遇到的这个服务器超时错误,在ASP.NET Core 2.1的SignalR里,配置位置确实和旧版SignalR有区别,我给你梳理下客户端和服务器端的具体修改方法:

客户端(JavaScript)配置

在创建Hub连接时,你可以通过withUrl的配置参数调整超时时间,核心是设置serverTimeoutInMilliseconds属性,它默认是30000毫秒(30秒),你可以根据业务需求延长这个值:

const connection = new signalR.HubConnectionBuilder()
    .withUrl("/yourHubEndpoint", {
        // 设置为60秒,可根据实际场景调整数值
        serverTimeoutInMilliseconds: 60000
    })
    .build();

另外还有个关联的keepAliveIntervalInMilliseconds(默认15000毫秒),它控制客户端发送心跳包的间隔。一般建议把超时时间设为心跳间隔的2倍以上,这样能减少因网络临时波动导致的误判超时。

服务器端配置

在Startup.cs的ConfigureServices方法里,通过AddSignalR的选项来配置服务器端的超时和心跳参数:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR(options =>
    {
        // 设置客户端超时时间为60秒
        options.ClientTimeoutInterval = TimeSpan.FromSeconds(60);
        // 设置服务器发送心跳包的间隔为30秒
        options.KeepAliveInterval = TimeSpan.FromSeconds(30);
    });
    // 其他服务配置代码...
}

这里要注意,服务器端的ClientTimeoutInterval建议大于等于客户端设置的serverTimeoutInMilliseconds,避免两端配置不匹配引发的问题。

顺带提一句,你之前参考的旧版SignalR文档里的配置方式不适用于ASP.NET Core版本,Core 2.1的SignalR把这些配置统一整合到了上述的客户端构建器和服务器选项中,所以之前没找到对应内容也正常~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:42:26