我已经做过一些ASP.NET Core SignalR项目,当涉及到不同类型的客户端的双向客户端/服务器通信时,我发现这项技术真的很棒。
因此,当将现有的.NET Framework应用程序移植到.NET Core时,我将SignalR用于通信层,以使其在树莓派上运行。
在调试模式下,一切正常。但是将其发布到测试环境后,我突然在服务器上收到“连接失败握手”错误。
这可能是什么原因?
答案 0 :(得分:1)
我遇到了同样的问题,ASP.Net Core SignalR 应用程序在本地机器上运行良好,但在 Azure VM 中部署时出现“连接握手失败”错误。
在我的例子中,它在为 Azure 门户中的入站规则启用 Websocket 端口(可以选择任何)后得到解决。同时在可能有帮助的最新浏览器中进行测试。
答案 1 :(得分:0)
由于我找到了问题的根源,所以我回答了自己的问题: GitHub帖子和SO文章均未解决该问题,因此它必须与我的环境有关。
最后我发现,部署脚本将旧版本的Newtonsoft.Json.dll复制到了我的输出目录,并用版本6覆盖了当前版本11。
此旧版本导致“连接握手失败”错误。替换为版本11可以解决此问题。