连接到集线器的 SignalR 2.2.0 WebSocket 错误

SignalR 2.2.0 WebSocket error connecting to hub

我有一个 ASP.Net MVC 应用程序,我已将 SignalR 添加到其中。在遵循“Getting Started”教程之后(当然有修改,因为它在我的应用程序中进行)我让它在本地主机上工作。但是,一旦它进入生产环境,我就会收到以下错误:

WebSocket connection to 'ws://xxxxx/signalr/connect?transport=webSockets&clientProtocol=1.5&connectionToken=xxxxx' failed: Connection closed before receiving a handshake response.

我可以访问 /signalr/hubs(我得到一个 js 文件)。关于为什么会发生这种情况的任何想法?

这可能是因为您的网络服务器不支持 WebSocket(例如 IIS 7.5)。也可能是因为您使用的是 "proxy" 服务器,例如 ARR 和它只是不能 "route" WebSocket 请求。

我会尝试做的第一件事是禁用 SignalR 上的 WebSockets,就像调试工具一样。方法如下:SignalR - How do I disable WebSockets

如果您的问题仍然存在,这是一个一般的 SignalR 问题,但至少您会遇到更具体的错误。如果问题停止,现在您知道这是服务器问题。