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

.NET 8 Blazor Server:blazor.server.js使用及SignalR配置问题

关于.NET 8 Blazor Server脚本与SignalR配置的问题解答

问题1:在.NET 8纯交互式Blazor Server应用中继续使用blazor.server.js是否安全?该脚本未来会被移除吗?

  • 目前在.NET 8中继续使用blazor.server.js是安全且受官方支持的。微软推出blazor.web.js是为了统一Blazor不同托管模型的脚本入口,但blazor.server.js作为旧版专用脚本,不会在短时间内被移除,会保留足够的过渡周期供开发者完成迁移。
  • 从长期规划来看,微软会逐步推动开发者转向blazor.web.js,后续版本可能将其标记为过时(obsolete),但至少在.NET 8及后续几个次要版本中,它仍能稳定运行。如果当前切换到blazor.web.js出现兼容性问题,完全可以继续使用旧脚本,待后续问题修复或环境适配后再迁移。

问题2:配置SignalR时设置skipNegotiation: true和transport: 1是否足以解决未启用粘性会话的问题?

  • 这个配置在满足前提条件的情况下是足够的:
    1. transport: 1对应SignalR的WebSocket传输方式(枚举值1代表WebSockets),WebSocket基于单一长连接通信,一旦客户端与服务器建立连接,后续所有交互都会通过该固定连接进行,无需依赖粘性会话路由请求。
    2. skipNegotiation: true会跳过SignalR的协商步骤,直接使用WebSocket连接,这要求服务器和负载均衡器必须支持WebSocket协议。
  • 额外需要确认的环境配置:
    • IIS服务器需启用WebSocket协议功能(可通过服务器管理器或dism命令开启)。
    • 负载均衡器需支持WebSocket的HTTP 101 Switching Protocols请求转发,确保WebSocket连接能正确建立并保持。

此前使用的配置代码:

<script src="_framework/blazor.server.js" autostart="false"></script>
<script>
Blazor.start({
    configureSignalR: function (builder) {
        builder.withUrl("/_blazor", {
            skipNegotiation: true,
            transport: 1
        });
    }
});
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:11:00