ASP.NET Core 2.1中SignalR连接启动失败求助
排查SignalR连接启动失败的实用方案
我之前踩过类似的坑,结合你描述的编译正常但连接失败的情况,给你几个具体的排查方向:
确认Hub路由配置是否正确
先检查Startup.cs里的SignalR路由注册代码,ASP.NET Core 2.1预览版需要在Configure方法里明确映射Hub路径:app.UseSignalR(routes => { routes.MapHub<ChatHub>("/hubs/chat"); });注意路径
/hubs/chat要和前端调用的地址完全一致,大小写也不能错哦。验证前端连接代码的准确性
看看初始化SignalR连接的前端代码有没有拼写失误,比如:const connection = new signalR.HubConnectionBuilder() .withUrl("/hubs/chat") .build();虽然控制台已经把路径规范化到HTTPS了,但还是要确认有没有混用HTTP/HTTPS的情况。
检查跨域(CORS)配置(如果存在跨域场景)
如果你的前端页面和API不在同一域名下,必须在Startup.cs的ConfigureServices里配置允许SignalR跨域:services.AddCors(options => { options.AddPolicy("AllowChatOrigin", builder => builder.WithOrigins("https://localhost:你的前端端口") .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials()); });还要记得在
Configure方法里把app.UseCors("AllowChatOrigin");放在UseSignalR之前。查看完整的控制台错误详情
你贴的日志只显示了开头,建议把Chrome控制台里的完整错误信息找出来:如果是404错误,基本就是路由配置不对;如果是500错误,可能是ChatHub类没正确继承Hub基类,或者Hub里有代码异常。核对Visual Studio的HTTPS端口配置
去项目属性的「调试」选项卡,确认「SSL端口」是不是控制台里显示的44380。另外偶尔SSL证书问题也会导致请求失败,可以试试清除浏览器的SSL缓存,或者重新生成开发证书。
内容的提问来源于stack exchange,提问作者Frens
相关产品推荐
相关产品推荐

