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

Blazor Server调试超时触发断连重连 如何调整超时配置

Blazor Server 调试单步触发连接超时的配置方案

该问题是Blazor Server底层依赖的SignalR连接默认超时阈值为30秒导致的:单步调试时服务端线程被挂起,无法按时发送心跳包,就会触发客户端超时重连逻辑。可通过以下配置修改超时限制:

1. 服务端配置

在.NET 6+项目的Program.cs文件中,修改Blazor服务注册逻辑,调整电路和SignalR Hub的超时参数:

builder.Services.AddServerSideBlazor()
    // 配置电路保留规则
    .AddCircuitOptions(opt => 
    {
        // 连接断开后电路保留时长,此处设为10分钟
        opt.DisconnectedCircuitRetentionPeriod = TimeSpan.FromMinutes(10);
    })
    // 配置SignalR Hub参数
    .AddHubOptions(opt =>
    {
        // 服务端心跳发送间隔,此处设为5分钟
        opt.KeepAliveInterval = TimeSpan.FromSeconds(300);
        // 客户端无消息超时阈值,此处设为10分钟
        opt.ClientTimeoutInterval = TimeSpan.FromSeconds(600);
    });

2. 客户端配置

在项目入口页(Pages/_Host.cshtml 或 wwwroot/index.html)中,修改Blazor初始化逻辑,同步调整客户端侧的超时参数:

<!-- 原有blazor.server.js引用保留 -->
<script src="_framework/blazor.server.js"></script>
<script>
Blazor.start({
    configureSignalR: builder => {
        // 客户端超时时间,单位毫秒,此处设为10分钟
        builder.withServerTimeout(600000);
        // 客户端心跳发送间隔,单位毫秒,此处设为5分钟
        builder.withKeepAliveInterval(300000);
    }
});
</script>

调试环境专属优化

如果不希望修改生产环境的默认超时规则,可使用编译指令或环境变量判断,仅在DEBUG模式下应用上述超长超时配置。
注意:以上大时长超时配置仅适用于本地开发调试场景,生产环境请恢复默认值,避免大量僵尸连接占用服务器资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 15:15:02