【问题标题】:signalR not working as expectedsignalR 未按预期工作
【发布时间】:2017-04-27 05:25:57
【问题描述】:

我正在从事一个维护项目。该应用程序基于 ASP.Net MVC4 构建并托管在 Azure 云上。它使用信号R。现在的问题是,signalR 连接 url 在一段时间后被中止。为此,我必须从 Azure 门户重新启动托管应用程序。但是我不能每次客户报告问题时都这样做。 请如果有人可以提供帮助或建议或解释如何解决此问题以及为什么会发生这种情况。

以下是我在浏览器控制台中获得的日志:

SignalR:serverSentEvents 传输连接失败。试图 倒退。 SignalR:尝试传输时,foreverFrame 传输超时 连接。 SignalR:foreverFrame 传输连接失败。尝试 后退。 SignalR:longPolling 传输在尝试时超时 连接。 SignalR:longPolling 传输连接失败。尝试 后退。 SignalR:后备传输已用尽。信号R: 停止连接。 SignalR:触发 ajax abort async = true。

谢谢...

【问题讨论】:

  • 你有什么异常吗?
  • 我添加了一些控制台日志

标签: asp.net-mvc-4 signalr azure-web-app-service


【解决方案1】:

首先,请检查是否调用了Stop 方法或您在客户端中导航离开页面。

其次,很多因素都可能导致断线问题。 this article 描述了连接生命周期和一些断开连接的场景,这可能会帮助您找到问题的可能原因。

第三,当 SignalR 尝试重新建立丢失的传输连接时达到超时限制,请尝试在Application_Start 中更改/增加Timeout settings

另外,不断重连的方法可以在连接丢失且重连尝试超时后自动重新建立连接,你可以试试。

$.connection.hub.disconnected(function() {
   setTimeout(function() {
       $.connection.hub.start();
   }, 5000); // Restart connection after 5 seconds.
});

【讨论】:

  • 我不认为这会有所帮助 - 连接甚至没有连接...我认为服务器端存在阻止建立连接的问题。
  • there is an issue on the server side that prevents from establishing a connection 是的,中心服务器的一些问题也可能阻止客户端建立连接。
  • 我在尝试调试时发现 $.connection.hub.state 的输出为 0,即“正在连接”。它直接进入“断开”状态,即 4。它永远不会连接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-04
  • 2022-01-24
  • 2015-05-11
  • 2020-05-15
  • 2014-10-31
  • 2018-02-12
  • 2014-01-20
相关资源
最近更新 更多