asp.net - IIS 7.5 上的 SignalR 始终对每个浏览器使用长轮询

标签 asp.net iis signalr long-polling server-sent-events

我知道 SignalR 有它的传输方法层次结构:Websocket->服务器发送事件->永远帧->长轮询

但是当我检查每个浏览器中的控制台时,我注意到传输始终长轮询。

我使用的是 Windows 7、IIS Express 7.5 和 Visual Studio 2013(当然还有 SignalR 2.0)。

我知道 Websocket 仅受 IIS 8 支持,但至少 IE 的 SSE 或 Forever Frame 应该可以工作。

例如,在 Google Chrome 中,我得到以下信息: enter image description here

这意味着 Chrome 正在尝试使用 SSE,对吧?但为什么会被取消呢?

这里是 Fiddler 与 Internet Explorer 的屏幕截图:

enter image description here

它是蓝色的......代码是200。(为什么有不同的端口?该网站在端口4040下运行,但11437来自哪里?) 甚至没有解释为什么 IE 不继续使用 SSE。

我的意思是,SSE/Forever Frame 确实可以与 IIS 7.5 一起使用,不是吗?

提前谢谢您!

PS:在你问之前,我在家并且没有代理

最佳答案

对端口 11437 的 SignalR 请求是由 Visual Studio 的新 Browser Link feature 发出的。可以禁用它。

您能否向我们展示您的服务器端代码(特别是 OnConnected 中的任何内容)?查看对 SSE 和 ForeverFrame/connect 请求的响应也会很有帮助。

最后,看看SignalR's server-side tracing可能会有帮助。

关于asp.net - IIS 7.5 上的 SignalR 始终对每个浏览器使用长轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652767/

相关文章:

javascript - SignalR 为所有客户端调用 asp.net 方法?

c# - 从电子邮件字符串获取主机.net core

javascript - 我们如何对在线 Dynamics CRM 中的注释进行分类/标记?

c# - 如何覆盖 Response.Redirect 以防止端口随附

iis - 为什么 CredentialCache.DefaultCredential 包含域、用户名和密码的空字符串

c# - 诊断 asp.net 网站/应用程序池的性能

c# - 进行基础连接时,asp.net 页面加载两次

c# - linq 按月份名称和年份排序(MMM yyyy 字符串)

c# - SignalR:尝试连接时 webSockets 超时。可能的 CORS 问题

asp.net-mvc - SignalR 请求抛出 "Hub could not be resolved."