代码改变世界

.net Core 3 部署 SignalR项目WebSocket failed: Error during WebSocket handshake: Unexpected response code: 400

2021-03-11 09:35  Dorisoy  阅读(549)  评论(0编辑  收藏  举报

概述

我基于.NET CORE 3.1开发了一个signalr的web api程序,我在本地以及公司测试服务器上测试都没问题,但是部署到客户的服务器上就出现了错误。服务器都是windows server 2012。
WebSocket failed: Error during WebSocket handshake: Unexpected response code: 400

错误分析

这个错误很明显是客户机无法连接到我们的websockets服务,并不是程序内部发生了错误,从日志中也能看到。

起初以为是redis的服务器或其他的配置问题,后反复确认后,还是有这个错误,所以推断分析应该是环境配置的问题。
后面经过查询和分析,signalr是需要服务器依赖websockets协议的。

安装websockets协议

控制面板里打开“启用或关闭windows功能“