2017-05-12 29 views
0

我有一个MVC 5 Web应用程序,它为Web套接字功能实现SignalR。SignalR流仅在生产中强制刷新后才起作用

在生产中,如果连接的客户端在浏览器上执行强制刷新操作后才收到流,则会在Windows Server 2008和IIS 7.5上生成错误。

即使在从未打开过的机器和浏览器上也可以进行复制,这让我觉得不是浏览器缓存问题。

这不会在开发中复制。

还有对环境的域的区别:

在发展中,我使用localhost:61350

在生产我用mydomain.com/MyWebApp

所以文件不会从根本上服务生产领域,他们使用虚拟路径服务。

关于如何解决此问题的任何想法?

编辑1:

问题被证实被复制:

谷歌浏览器 火狐 歌剧 边缘 Safari浏览器IOS

这些只是我有机会获得并取得浏览器测试。

+0

您就可以在浏览器的JavaScript控制台知道这是完全错误? –

+0

没有错误抛出,当问题发生,当它工作正常时,它会记录每个更新的预期,但只有当我强制刷新。 –

回答

0

我能够通过从$(document).ready()中移出SignalR start()调用来解决此问题。我不知道为什么会导致一个问题,但在我的情况下,它的确如此。我使用.NET 4.7(但已尝试4.5 & 4.6)和jQuery 3.2.1。

只能对刷新:

<script> 
    $(document).ready(function() { 
     $.connection.hub.start().done(function() { 
      ... 
     }); 
    }); 
</script> 

作品所有的时间:

<script> 
    $.connection.hub.start().done(function() { 
     ... 
    }); 
</script>