Google Chrome 119版本无法连接本地运行的SignalR主机服务求助
针对Chrome 119.0.6045.160无法连接本地SignalR服务的排查方案
1. 检查Chrome本地HTTPS证书信任配置
Chrome 119版本调整了localhost的安全验证逻辑,即便安装了本地SSL证书,也可能存在信任问题:
- 打开
chrome://flags/#allow-insecure-localhost,启用Allow invalid certificates for resources loaded from localhost选项,重启Chrome后测试连接。 - 进入
chrome://settings/certificates,切换到「受信任的根证书颁发机构」标签,确认你的本地SSL证书已被添加到信任列表。
2. 锁定SignalR传输协议兼容性
新版本Chrome对部分SignalR传输协议的支持可能有变化,可强制指定传输方式:
- 在Web应用的SignalR连接代码中,显式指定WebSocket传输:
const connection = new signalR.HubConnectionBuilder() .withUrl("https://localhost:8083/hub", { transport: signalR.HttpTransportType.WebSocket }) .build(); - 检查SignalR服务端配置,确保WebSocket传输未被禁用。
3. 通过DevTools定位具体错误
打开Chrome DevTools(F12),精准排查阻断原因:
- 切换到「Network」标签,过滤「WS」或「Fetch/XHR」请求,查看SignalR连接请求的状态码、响应头及报错详情。
- 查看「Console」标签,确认是否存在证书无效、跨域拦截或协议不兼容类的报错信息。
4. 校验CORS配置的严格性
Chrome新版本对localhost的CORS校验可能更严格,需确认服务端配置:
- 确保SignalR服务端的CORS策略允许Web应用的域名(含端口),示例配置:
builder.Services.AddCors(options => { options.AddPolicy("AllowLocalHost", policy => policy.WithOrigins("https://你的Web应用域名:端口") .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials()); }); - 确认Web应用发起SignalR连接时携带了正确的凭证(若有需求)。
5. 调整Chrome隐私安全设置
- 进入
chrome://settings/security,将安全级别切换为「标准保护」,关闭「增强型安全浏览」后重试。 - 暂时禁用所有浏览器扩展,排查是否有扩展拦截了本地HTTPS请求。
内容的提问来源于stack exchange,提问作者Nitin Joshi
相关产品推荐
相关产品推荐

