IIS 7.5上的SignalR始终使用长轮询与每个浏览器通信。

3
我知道SignalR有它的传输方法层次结构:Websocket->服务器发送事件(Server-Sent Events)->Forever Frame-> 长轮询(Long Polling)。
但是,当我在每个浏览器的控制台中检查时,我发现传输总是长轮询。
我使用的是Windows 7, IIS Express 7.5和Visual Studio 2013(当然是SignalR 2.0)。
我知道Websocket只支持IIS 8,但至少SSE或Forever Frame对于IE应该有效。
例如,在Google Chrome中,我得到这个:
那意味着Chrome正在尝试使用SSE,对吗?但为什么会被取消?
这里是使用Internet Explorer的Fiddler截图:
它是蓝色的...且代码是200。(而不同的端口是从哪里来的?站点运行在4040端口下,但11437从哪来的?)
甚至没有解释为什么IE不继续使用SSE。
我的意思是,SSE/Forever Frame确实可以在IIS 7.5上工作,是吗?
谢谢您的帮助!
PS:在你问之前,我在家里并没有使用代理。
2个回答

0

虽然有点晚了,但我还是想解决这个问题。

原因是Bitdefender Internet Security 2013。它会缓冲请求或类似的东西,我不太确定 :X

无论如何,我卸载了它,问题就解决了:D


0

SignalR 请求端口11437是由Visual Studio的新Browser Link功能发起的,该功能可以禁用。

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

最后,查看SignalR 服务器端跟踪可能会有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接