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

.NET 8 Blazor SSR配置疑问:升级后仍用WebSocket,如何调整?

解决.NET 8 Blazor无需WebSocket的SSR配置问题

一、Program.cs 配置调整

  • 移除WebSocket相关的Hub映射:静态SSR不需要建立WebSocket连接,可删除app.MapBlazorHub();语句
  • 保留Blazor服务注册(若项目仍需使用Blazor组件):builder.Services.AddServerSideBlazor(); 可继续保留,不影响静态渲染

修改后的Program.cs示例:

builder.Services.AddServerSideBlazor(); 
// 移除 app.MapBlazorHub();

二、页面组件渲染模式修改

你当前使用的ServerPrerendered和Server模式均为交互式服务器端Blazor,会自动建立WebSocket连接。要启用无需WebSocket的静态SSR,需将渲染模式改为Static:

方式1:使用<component>标签

<component type="typeof(DoldurExampleList)" render-mode="Static" />

方式2:使用RenderComponentAsync方法

@( await Html.RenderComponentAsync<DoldurExampleList>(RenderMode.Static))

三、移除交互式Blazor脚本

静态SSR不需要blazor.server.js脚本,因为无需建立WebSocket连接,请在_Layout.cshtml中删除以下代码:

<script src="_framework/blazor.server.js"></script>

可选:保留交互性但使用长轮询替代WebSocket

若需要组件保留交互能力但不想用WebSocket,可配置长轮询传输方式:
在Program.cs中修改Blazor服务注册:

builder.Services.AddServerSideBlazor(options =>
{
    options.Transports = HttpTransportType.LongPolling;
});

此方式需保留app.MapBlazorHub();和blazor.server.js,但连接会使用长轮询而非WebSocket。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:32:18