SignalR 应用程序握手期间 Web 套接字失败

Web Socket failed during Handshake in SignalR application

我正在尝试 运行 我的 signalR 应用程序,但出现以下错误:“

WebSocket connection to 'ws://localhost:60377/signalr/connect?transport=webSockets&clientProtocol=2.1&connectionToken=f8tOcpqdXVZ245%2BvWKsSFHaGfl6GePMtKf0Jk9wSIJQxsa5KnEiZFyGoFgYuwbQ%2FirsDjiX%2FHtVRJAvhvmOtrvYJpaZD21GHiyyqBw785nI2TICxJ4P33puQnEnjGSlMpmMBxtNk02XxkTJpZxvClw%3D%3D&connectionData=%5B%7B%22name%22%3A%22geologuehub%22%7D%5D&tid=4' failed: Error during WebSocket handshake: Unexpected response code: 500"

如果能帮助解决此问题,我将不胜感激。

这可能发生在以下情况:

  1. 您的中心不是 public class。
  2. 您的服务器无法实例化集线器。
  3. 当您的服务器在 http 上运行时,您正在建立 https 连接,反之亦然。

在 javascript 上添加回退传输列表解决了这个问题。这很奇怪,因为我使用的是 googleChrome(版本 77.0.3865.90)并且不支持网络套接字!!

  $.connection.hub.start({ transport: ['serverSentEvents', 'longPolling'] }).done(function ()
  {
       console.log(`SignalR connection transport used is "${$.connection.hub.transport.name}"`);
  });