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

ASP.NET Core SignalR集成Blazor时出现Invalid negotiation response received错误求助

ASP.NET Core SignalR集成Blazor时出现Invalid negotiation response received错误求助

我严格按照教程步骤集成SignalR到Blazor项目,但一直遇到以下错误:

Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer: Warning: Unhandled exception rendering component: Invalid negotiation response received.

System.IO.InvalidDataException: Invalid negotiation response received.

---> System.Text.Json.JsonReaderException: '<' is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0.

兄弟,我之前也踩过这个坑,给你分析下问题根源:这个错误的核心是SignalR的协商请求没有拿到预期的JSON响应,反而收到了HTML内容(比如404错误页、登录跳转页)——因为HTML都是以<开头的,所以JSON解析直接失败了。

接下来给你几个实用的排查方向,你挨个试试:

  • 检查Hub端点路由配置:确保在Program.cs里正确映射了你的Hub,比如app.MapHub<ChatHub>("/chathub");,而且Blazor组件中连接Hub的路径要和这个完全一致,不能多写或漏写斜杠。
  • 排查身份验证拦截问题:如果你的应用启用了身份验证,协商请求可能被重定向到登录页面(返回HTML),导致解析失败。可以先临时关闭身份验证测试,如果问题消失,再给Hub端点配置合适的授权策略,或者允许匿名访问协商路径。
  • 核对中间件顺序:ASP.NET Core的中间件顺序直接影响请求处理逻辑,一定要确保MapHub是在UseRouting之后,UseAuthentication、UseAuthorization之后配置的,避免Hub的路由被其他中间件拦截。
  • 查看浏览器网络请求详情:按F12打开开发者工具,切换到「网络」标签,找到SignalR的协商请求(一般是GET请求,路径类似/yourhubpath/negotiate),查看响应内容。如果是HTML页面,就能直接定位是404错误、登录跳转还是其他问题。
  • 检查反向代理配置(如果部署了):如果项目部署在IIS、Nginx等反向代理后面,要确保代理正确转发了SignalR的请求,并且开启了WebSocket支持,否则可能导致请求被篡改,返回错误内容。

如果还是解决不了,可以把协商请求的响应内容贴出来,这样能更精准地定位问题!

备注:内容来源于stack exchange,提问作者Obsidian Delta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:13:05