IIS下ABP中使用AspNetCore.SignalR时出现Failed connection handshake错误
Failed connection handshake error when using AspNetCore.SignalR in ABP under IIS
我的环境
- .NetCore SDK - 2.1.300
- Microsoft.AspNetCore.SignalR - 1.0.0
- IIS - Window Server 2016 中的版本 10.0.12393.0
AspNetCore.SignalR
的示例代码
- 我按照 link 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 很好。
Abp AspNetCore.SignalR
- 我从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'
- 错误:连接断开,出现错误 'Error: Server returned handshake error: An unexpected error occurred during connection handshake.'。
我已经解决了这个问题。这是一个代码问题,在我的代码中我设置了
HandshakeTimeout = TimeSpan.MaxValue;
如果我对上面的代码进行注释,那么在 VS 和 IIS 中都可以正常工作。
此处相同,但有点不同:我 运行 Rider 中的服务器,一切正常。我把它放在另一个目录中,但出现握手错误。删除握手超时,它无处不在。
我的环境
- .NetCore SDK - 2.1.300
- Microsoft.AspNetCore.SignalR - 1.0.0
- IIS - Window Server 2016 中的版本 10.0.12393.0
AspNetCore.SignalR
的示例代码- 我按照 link 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 很好。
Abp AspNetCore.SignalR
- 我从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'
- 错误:连接断开,出现错误 'Error: Server returned handshake error: An unexpected error occurred during connection handshake.'。
我已经解决了这个问题。这是一个代码问题,在我的代码中我设置了
HandshakeTimeout = TimeSpan.MaxValue;
如果我对上面的代码进行注释,那么在 VS 和 IIS 中都可以正常工作。
此处相同,但有点不同:我 运行 Rider 中的服务器,一切正常。我把它放在另一个目录中,但出现握手错误。删除握手超时,它无处不在。