【问题标题】:AspNetCore SignalR failed connection handshakeAspNetCore SignalR 连接握手失败
【发布时间】:2019-03-26 16:14:27
【问题描述】:
我已经完成了一些 ASP.NET Core SignalR 项目,当涉及到不同类型客户端的双向客户端/服务器通信时,我发现这项技术非常棒。
因此,在将现有的 .NET Framework 应用程序移植到 .NET Core 时,我使用 SignalR 作为通信层,让它在树莓派上运行。
在调试模式下一切正常。但是在发布到测试环境后,我突然在服务器上收到“失败的连接握手”错误。
这可能是什么原因?
【问题讨论】:
标签:
c#
.net-core
asp.net-core-signalr
【解决方案1】:
因为我找到了问题的根源,所以我回答了我自己的问题:
GitHub 的帖子和 SO 文章都没有解决这个问题,所以它必须对我的环境做些什么。
最后我发现,部署脚本将旧版本的 Newtonsoft.Json.dll 复制到了我的输出目录,用版本 6 覆盖了我当前的版本 11。
这个旧版本导致“连接握手失败”错误。将其替换为版本 11 解决了该问题。
【解决方案2】:
我遇到了同样的问题,ASP.Net Core SignalR 应用程序在本地机器上运行良好,在 Azure VM 中部署它时出现“连接握手失败”错误。
在我的情况下,在为 Azure 门户中的入站规则启用 Websocket 端口(可以选择任何)后,它得到了解决。还可以在可能有帮助的最新浏览器中进行测试。