我有一个问题,我无法理解。在我们网站的某些页面上,我们使用SignalR。最近,一些客户,尤其是从公司代理/防火墙后面使用我们网站的客户,在SignalR页面上遇到问题。他们无法加载/ signalr / hubs脚本,并返回HTTP状态代码406。
我无法解释为什么会给出406状态代码,accept: */*
和accept-language
应该能解决问题。我看到的唯一显着区别是第二张图片中的缓存已禁用。
必要的脚本按正确的顺序排列:
<script src='//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js' type='text/javascript'></script>
<script type="text/javascript" src="/Collectief/Scripts/jquery.signalR-2.2.0.min.js"></script>
<script type="text/javascript" src="/Collectief/signalr/hub"></script>
有人遇到过这个问题吗?如here所述,禁用自动生成的中心脚本并生成物理文件是否有帮助?
答案 0 :(得分:0)
似乎/ Collectief / signalr / hub的呼叫从未到达我们的服务器,并且被客户端的公司防火墙阻止。他们有一个梭子鱼防火墙。似乎某些防火墙制造商(可能不仅仅是梭子鱼)已经更新了过滤器,现在正在阻止SignalR功能。
我们用物理文件替换了自动生成的/ signalr / hub来解决此问题,但随后协商调用将失败,并显示另一个406状态代码。
我们现在告诉客户更改防火墙设置:将我们的站点列入白名单或允许所有SignalR呼叫。