【问题标题】:SignalR Initialization Issue On Different Computers不同计算机上的 SignalR 初始化问题
【发布时间】:2015-08-17 16:11:16
【问题描述】:

我的 SignalR 在我的主 PC 上运行良好,但是当我将我的项目转移到我的笔记本电脑并尝试运行它时,SignalR 在控制台中抛出以下错误。

 Error: No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.

我尝试使用不同的版本都无济于事(2.2、2.1.2、2.0.3)。

我已经研究了该错误,但似乎没有一个解决方案与为什么该错误只会在一台 PC 上发生有关。有什么想法吗?

这是 signalR 的完整日志:

[11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: Client subscribed to 
hub 'tcardhub'.jquery.signalR-2.1.2.js:81 [11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: Negotiating with '/signalr/negotiate?clientProtocol=1.4&connectionData=%5B%7B%22name%22%3A%22tcardhub%22%7D%5D'.   
SignalRHubService.js:60 Error: No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.
    at Object.signalR._.error (http://localhost:29858/Scripts/jquery.signalR-2.1.2.js:178:21)
    at signalR.fn.signalR.start.initialize (http://localhost:29858/Scripts/jquery.signalR-2.1.2.js:553:50)
    at Object.signalR.fn.signalR.start.connection._.negotiateRequest.signalR.transports._logic.ajax.success (http://localhost:29858/Scripts/jquery.signalR-2.1.2.js:765:21)
    at n.Callbacks.j (https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js:2:26911)
    at Object.n.Callbacks.k.fireWith [as resolveWith] (https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js:2:27724)
    at x (https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js:4:11065)
    at XMLHttpRequest.n.ajaxTransport.k.cors.a.crossDomain.send.b (https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js:4:14577)Hub.errorHandler @ SignalRHubService.js:60(anonymous function) @ jquery.signalR-2.1.2.js:836n.event.dispatch @ jquery.min.js:3n.event.add.r.handle @ jquery.min.js:3n.event.trigger @ jquery.min.js:3e.event.trigger @ jquery-migrate.min.js:2n.fn.extend.triggerHandler @ jquery.min.js:3signalR.fn.signalR.start.initialize @ jquery.signalR-2.1.2.js:558signalR.fn.signalR.start.connection._.negotiateRequest.signalR.transports._logic.ajax.success @ jquery.signalR-2.1.2.js:765n.Callbacks.j @ jquery.min.js:2n.Callbacks.k.fireWith @ jquery.min.js:2x @ jquery.min.js:4n.ajaxTransport.k.cors.a.crossDomain.send.b @ jquery.min.js:4
jquery.signalR-2.1.2.js:81 [11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: Stopping connection.
jquery.signalR-2.1.2.js:81 [11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: Client subscribed to hub 'tcardhub'.
jquery.signalR-2.1.2.js:81 [11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: Negotiating with '/signalr/negotiate?clientProtocol=1.4&connectionToken=U6E4eibrnyXgS%2FJWuNo5iwIy%2BU8S6x1w9Vh%2FDmthMMvFCw8g%2BX53Fq9f%2FlNdqyJIOW0j7uk8sZ4BwN4uP52QwpFNMjZJDUdZ2ZjeXLgSvSLUZmQ3L9fZLXYatHcs0bh2&connectionData=%5B%7B%22name%22%3A%22tcardhub%22%7D%5D'.
jquery.signalR-2.1.2.js:81 [11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: Attempting to connect to SSE endpoint 'http://localhost:29858/signalr/connect?transport=serverSentEvents&clientPro…2Bxa%2Fe2uZd4&connectionData=%5B%7B%22name%22%3A%22tcardhub%22%7D%5D&tid=8'.
jquery.signalR-2.1.2.js:81 [11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: EventSource connected.
jquery.signalR-2.1.2.js:81 [11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: serverSentEvents transport selected. Initiating start request.
jquery.signalR-2.1.2.js:81 [11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: The start request succeeded. Transitioning to the connected state.
jquery.signalR-2.1.2.js:81 [11:49:30 GMT-0600 (Mountain Daylight Time)] SignalR: Now monitoring keep alive with a warning timeout of 13333.333333333332 and a connection lost timeout of 20000.

错误发生在 IE 和 Chrome 中。我正在使用安全性更高的工作笔记本电脑,所以我认为可能有一些安全设置会破坏一些东西。

【问题讨论】:

  • 您的浏览器似乎不适用于 WebSockets(我假设您没有更改传输选项)。尝试使用其他浏览器。另外,在客户端添加这行代码并在浏览器中打开控制台:`$.connection.hub.logging = true;` 以便了解发生了什么
  • 感谢您的建议。我用完整的日志更新了帖子。

标签: javascript jquery signalr


【解决方案1】:

我通过将传输更改为“auto”而不是使用“webSockets”来解决此问题。我不知道为什么网络套接字不能在一台计算机上工作,但至少现在修复了它。

【讨论】:

  • 也许你在连接 websockets 没有启用或者甚至不支持 (Win2K8/Win7)
  • Win7上真的没有启用web sockets吗?我在它工作的机器上使用 Windows 8。很高兴知道。谢谢。
  • Win7 根本不支持 websockets - 请参阅 stackoverflow.com/questions/11039438/…
猜你喜欢
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 2012-02-03
相关资源
最近更新 更多