某些语言的SignalR客户端调用失败

Kri*_*ams 5 javascript c# asp.net asp.net-mvc signalr

我一直在为客户开发一个项目,并且将SignalR集成到系统中有很多乐趣.

一切似乎都运行良好,客户对SIGR如何为其应用提供真实的实时反馈感到非常兴奋.

在大多数情况下,一切都在游动,但是我遇到了一个奇怪的问题,我根本无法确定.

一切都适用于以下语言环境:

  1. EN-US
  2. EN-GB
  3. NL

但是,这些语言永远不会从集线器获得回调:

  1. FR
  2. ES
  3. en-ZW - 我们使用英语津巴布韦来检查所有被翻译的字符串.

我可以直接执行代码,直到Clients.Client(ConnectionId).update(Result);(其中ConnectionId是正确的连接ID,结果是准备序列化的对象,前四种语言完美无瑕,我得到了具有预期输出的Javascript方法.

然而,在最后四种语言中,该方法被触发,但没有任何东西通过另一方.没有.压缩.

如果我用默认的Strings.resx替换Strings.fr.resx文件,那么我的网站按预期运行,但由于Strings.en-ZW.resx文件与Strings.resx相同(只有每个字符串都包含在[()中) ])我怀疑这是问题所在.我也尝试使用fr语言环境删除所有unicode翻译(`,é,â等),但这没有帮助.

我已经花了差不多一整天了,发现没有任何迹象表明这个问题,而且en工作得很好,en-ZW并没有让我感到困惑.

有人有什么建议吗?

Hub方法:

public class ClientHub : Hub
{
    [...]

    protected void UpdateRecords(List<Int32> ChangedValues) 
    {
        using (var database = new DbContext())
        {
            foreach (Record R in database.Records.Where(Rc => ChangedValues.Contains(Rc.Id))
            {
                SignalRFormattedRecord Serialized = new SignalRFormattedRecord(Record);

                foreach (SavedFilter Filter in SavedFilters.ByRecord(Record))
                {
                    // Next line is always called.
                    Clients.Client(Filter.ConnectionId).updateRow(Serialized);
                }
            }
        }
    }

    [...]
}
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$.connection.clientHub.updateRow = function(value) {
    debugger;
    // update code works in all languages except FR, DE, ES and en-ZW.
}

$.connection.start();
Run Code Online (Sandbox Code Playgroud)

Kri*_*ams 2

事实证明,过滤系统与语言无关,而且在调试过程中由于悬空连接,我收到了误报。

我现在觉得自己很傻。