【问题标题】:MVC 5 application with AJAX and SignalR hangs in Chrome带有 AJAX 和 SignalR 的 MVC 5 应用程序在 Chrome 中挂起
【发布时间】:2015-05-06 11:42:34
【问题描述】:

我有一个使用 AJAX 调用和 SignalR 的 MVC 5 应用程序。当执行以下操作顺序时,应用程序在 Chrome 中挂起:

  1. 用户访问页面 A,页面加载后控制台如下所示

    SignalR: serverSentEvents transport starting.
    SignalR: Attempting to connect to SSE endpoint
    SignalR: EventSource connected.
    SignalR: serverSentEvents transport connected. Initiating start request.
    SignalR: The start request succeeded. Transitioning to the connected state.
    SignalR: Now monitoring keep alive with a warning timeout of 13333.333333333332, keep alive timeout of 20000 and disconnecting timeout of 30000
    
  2. 用户点击页面 A 的链接,调用 AJAX 调用

  3. 2.AJAX调用成功返回,UI通过jQuery更新
  4. 用户通过 F5 启动页面刷新,页面加载后控制台如下所示

    SignalR: serverSentEvents transport starting.
    SignalR: Attempting to connect to SSE endpoint
    SignalR: EventSource connected.
    SignalR: serverSentEvents transport connected. Initiating start request.
    
  5. 用户尝试通过单击一个简单的链接(带有 href 属性的标签)进行导航,并且网站挂起大约 2 分钟,直到提供新页面

我注意到4.之后控制台不显示

SignalR: The start request succeeded. Transitioning to the connected state.
SignalR: Now monitoring keep alive with a warning timeout of ...

行,所以我猜它与 SignalR 有关。

过去有没有人遇到过如此巨大的延迟并知道如何避免?

我试过了

  • 更改 SignalR 的传输协议
  • window.onbeforeunload 解决方法
  • 不同的jQuery版本
  • 还有 1000 件事情我已经记不起来了

非常感谢任何帮助,因为我的想法已经不多了。

【问题讨论】:

标签: jquery ajax asp.net-mvc-4 signalr


【解决方案1】:

这个问题是在使用 Orchard 时发布的。将 Orchard 更新到 1.10.1 后,超时消失了,SignalR 现在可以在 Chrome 中完美运行。

我在更新到 1.10.1 时检查了每个代码文件,并且 Owin 和会话内容发生了一些变化,所以我认为这是 Owin 或会话实现/处理的问题。

【讨论】:

    猜你喜欢
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    相关资源
    最近更新 更多