【发布时间】:2018-05-31 12:44:12
【问题描述】:
我的环境
- .NetCore SDK - 2.1.300
- Microsoft.AspNetCore.SignalR - 1.0.0
- IIS - Window Server 2016 中的版本 10.0.12393.0
AspNetCore.SignalR 的示例代码
- 我按照链接 https://docs.microsoft.com/en-us/aspnet/core/signalr/get-started?view=aspnetcore-2.1&tabs=visual-studio 的说明完成了一个示例 AspNetCore.SignalR 聊天代码。
- 我可以在 Visual Studio 中成功运行它。
- 之后,我将它发布到我的服务器(window server 2016,IIS 具有 websocket 功能),它也工作正常。这意味着,我的服务器环境很好地支持 AspNetCore.SignalR。
AbpNetCore.SignalR 的 Abp
- 我从 ABP 网站下载 ABP 模板代码
- 将 .net core sdk 升级到 .net core 2.1
- 升级 nuget 包
- 按照我上面的步骤在项目中添加示例 AspNetCore.SignalR 聊天代码。
- 在visual studio中运行成功
问题是,当我将它发布到服务器(与我上面的服务器相同)并运行它时,它会引发错误 - AspNetCore.SignalR.HubConnectionContext - 连接握手失败。
我已经研究过了,但没有得到任何解决方案。你能帮忙看看是什么问题吗?
我已将我的项目推送到 github:https://github.com/lcyhjx/AbpExample,您可以拉取并运行它(只需运行 AbpExample.Web.Host)。它在 Visual Studio 中运行良好,但在 IIS 中失败。
错误详情:
- 信息:将“/chatHub”规范化为“http://localhost:6011/chatHub”。
- 信息:WebSocket 连接到 ws://localhost:6011/chatHub?id=2zix_nPHODwLEv2p_4VCAw'
- 错误:连接断开并出现错误“错误:服务器返回握手错误:连接握手期间发生意外错误。”。
【问题讨论】:
-
您使用的是哪个版本的 Microsoft.AspNetCore.SignalR?
-
您的 Web 服务器是否支持 WebSockets?尝试禁用 websockets 以了解这是否是问题stackoverflow.com/questions/9994776/…
-
也可能是防火墙问题
-
Microsoft.AspNetCore.SignalR的版本是1.0.0
-
是的,我的服务器支持 WebSockets,你可以看到我的 AspNetCore.SignalR 示例代码在我的服务器上运行良好
标签: asp.net-core signalr aspnetboilerplate