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

本地调试Blazor Server端应用时无WebSocket网络活动

解决Blazor Server(.NET 8)本地调试时Chrome无法查看WebSocket活动的问题
  • 确认Chrome DevTools的WebSocket面板操作
    打开Chrome调试器(F12或Ctrl+Shift+I),切换到Network标签,顶部筛选栏必须选中WS(WebSocket)选项——默认选的是All或其他分类,会过滤掉WebSocket请求。另外刷新页面触发Blazor连接,空面板可能是连接还没建立。

  • 验证Blazor Server的WebSocket核心配置
    检查Program.cs中是否保留了Blazor Server的WebSocket核心中间件,.NET 8默认已启用,但避免被误删:

    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddRazorPages();
    builder.Services.AddServerSideBlazor();
    
    var app = builder.Build();
    // 确保以下中间件存在,这是建立WebSocket连接的关键
    app.MapBlazorHub();
    app.Run();
    

    若自定义了WebSocket规则,排查是否有拦截本地连接的设置。

  • 排查Chrome自身状态干扰

    • 清除浏览器缓存(Ctrl+Shift+Delete),仅勾选“缓存的图像和文件”后刷新页面
    • 关闭所有Chrome窗口后重新打开,避免调试器进程异常
    • 改用Chrome无痕模式调试,排除扩展程序对WebSocket的拦截
  • 检查Visual Studio调试配置

    • 确认调试目标是IIS Express或Kestrel,而非特殊宿主
    • 右键项目→属性→调试,检查“启动浏览器”设置为Chrome,且无禁用WebSocket的附加参数
    • 查看Visual Studio的“输出”窗口(切换到“ASP.NET Core Web Server”频道),搜索WebSocket关键词,确认连接是否成功建立的日志
  • 确认Blazor Server的传输模式
    .NET 8 Blazor Server默认用WebSocket,失败会降级为长轮询。打开Chrome调试器Console标签,执行代码查看当前传输方式:

    Blazor.defaultReconnectionHandler._connection._transport.type
    

    如果返回LongPolling,说明WebSocket连接失败,需进一步排查网络或系统防火墙限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:12:02