客户端不断重新连接
问题描述:
我的.net应用程序连接到信号中心不断重新连接。客户端不断重新连接
此问题只发生在某些其他企业网络,这使我相信某些东西被阻止。 我试过使用来自同一网络的jabbr.net网站,这也不起作用(在铬)。
我该如何追踪/解决这个问题?
答
我认为你遇到这个问题https://github.com/SignalR/SignalR/pull/1553。我们正在为它修复。当服务器发送事件请求超时但实际的http请求仍在进行时,会发生此问题。接下来发生的事情是,长时间传输和服务器发送事件http请求为连接而战。
要解决此问题,您可以专门指定LongPollingTransport。我们将考虑为下一个版本解决这个问题。
答
对于服务器,在你的web.config的System.Diagnostics程序部分添加:
<sharedListeners>
<add name="SignalR"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="signalr.log.txt" />
</sharedListeners>
对于你的客户(我假设.NET C#),它的记录是通过调试。写。此外,我建议挂钩到您的连接错误处理程序。
如果您使用JS客户端,您可以打开登录通过
// Non dynamically made connection
connection.logging = true;
// Dynamically made connection
$.connection.hub.logging = true
希望这有助于!
解决方法非常有帮助,非常感谢! – UnreliableWitness 2013-02-22 08:34:58
该错误已修复,将在下一个版本中发布https://github.com/SignalR/SignalR/commit/0a6ff146d482470297e92ccc3e7702ee0ae1eede – davidfowl 2013-02-22 11:37:55
我在.NET 4.0的.NET信号客户端版本2.2.1.0中遇到了同样的问题。我通过将SSE设置为协议来启动客户端。当@davidfowl描述发生时,客户端会经历连续的连接,处理,停止并立即重新连接,处理,停止。我没有看到客户端在LongPollingTransport和SSE之间切换 - 只停留在SSE。启动客户端后,我附加了一个ContinueWith来检测异常/任务故障。 IIRC,删除ContinueWith帮助在一点,但我喜欢保持它,不想处理Task.wait()周围的异常。 – hexterminator 2016-11-20 19:58:58