Asp.net mvc 在信号器应用程序中握手期间Web套接字失败

Asp.net mvc 在信号器应用程序中握手期间Web套接字失败,asp.net-mvc,signalr,Asp.net Mvc,Signalr,我正在尝试运行我的信号器应用程序,但出现以下错误:” WebSocket连接到 'ws://localhost:60377/signal/connect?transport=webSockets&clientProtocol=2.1&connectionToken=f8tOcpqdXVZ245%2BvWKsSFHaGfl6GePMtKf0Jk9wSIJQxsa5KnEiZFyGoFgYuwbQ%2FirsDjiX%2phtrjavhvmotrvyjpazd21ghiyqbw785ni2ticxj

我正在尝试运行我的信号器应用程序,但出现以下错误:”

WebSocket连接到 'ws://localhost:60377/signal/connect?transport=webSockets&clientProtocol=2.1&connectionToken=f8tOcpqdXVZ245%2BvWKsSFHaGfl6GePMtKf0Jk9wSIJQxsa5KnEiZFyGoFgYuwbQ%2FirsDjiX%2phtrjavhvmotrvyjpazd21ghiyqbw785ni2ticxj4p33puqnengslmmbxtnk02xxktjpzvclw%3D%3D&connectionData%5B%7B%227b%22%22%22%geologuedhub%4' 失败:WebSocket握手期间出错:意外响应代码: 500“

如果您能帮我解决这个问题,我将不胜感激

这可能发生在以下情况:

  • 您的中心不是公共类
  • 您的服务器无法实例化集线器
  • 当您的服务器在
    http
    上运行时,您正在进行
    https
    连接,反之亦然

  • 在javascript上添加一个后备传输列表修复了这个问题。这很奇怪,因为我正在使用googleChrome(版本77.0.3865.90),而web套接字不受支持

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

    我已经检查了前两个,除了最后一个,我的服务器运行在http上,我不知道如果服务器在http上,浏览器是否会运行在https上?确保如何在客户端执行请求。这是请求URL的内容:“ws://localhost:60377/signar/connect?transport=”在客户端,我不明白为什么ws是http!!?你的客户方到底是什么?如何调用连接?问题是连接传输,这很奇怪,因为我使用的是googleChrome(版本77.0.3865.90),不支持web套接字