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

Azure中Blazor Server扩容至两台服务器时出现_blazor加载错误的原因咨询

Blazor Server多服务器部署必须启用会话亲和性的原因

Blazor Server的核心逻辑是在服务器端维护每个用户的电路(Circuit)状态——用户每次建立连接,服务器都会生成一个专属Circuit,里面存着组件状态、交互上下文这些关键信息,而且这个Circuit是绑定到当前处理请求的服务器实例上的,不同服务器之间不会同步这些状态。

你关闭会话亲和性后,负载均衡器会把用户的请求随机分发到两台服务器:

  • 第一次请求落到服务器A,服务器A创建Circuit并生成对应的连接ID
  • 后续的SignalR连接请求被分到服务器B,服务器B根本没有这个连接ID对应的Circuit,自然就返回404错误,也就是你日志里看到的No Connection with that ID: Status code '404'

至于你问的blazor.server.js这类系统文件,其实它们是静态资源,只要多服务器上的静态文件保持一致,从哪台服务器加载都没问题。真正导致报错的不是静态文件的来源,而是Circuit状态和服务器实例的绑定关系——哪怕静态文件从同一服务器加载,后续请求跳去别的服务器,还是会找不到Circuit而失败。

总结一下:Blazor Server多服务器部署时,必须启用会话亲和性,保证同一个用户的所有请求都路由到创建他Circuit的那台服务器,这样才能维持SignalR连接和状态的一致性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:32:12