2015-11-13 6 views
5

私はクライアント用のプロジェクトで作業していて、SignalRをシステムに組み込むのが楽しいです。SignalRクライアントの呼び出しが特定の言語で失敗する

すべてがうまくいくように見えますが、クライアントはSignalRがどのようにアプリケーションに真のリアルタイムフィードバックを与えるかについて本当に興奮しています。

ほとんどすべてがうまくいっていますが、私は単純にピン止めできないという奇妙な問題に遭遇しました。

すべてが次のロケールのために素晴らしい作品:

  1. EN-US
  2. それは
  3. NL

しかしこれらの言語は、単にからのコールバックを取得することはありませんエンGB

  • ハブ:

      エンZW
    1. FR
    2. デES
    3. - 私たちはすべての文字列をチェックするために、英語ジンバブエを使うが翻訳されています。私は右のClients.Client(ConnectionId).update(Result);までコードをステップ実行することができます

    (ConnectionIdが正しい接続IDで、その結果が、これは完璧に行き、私は私のJavaScriptのメソッドを取得する最初の4つの言語で、シリアライズされる準備ができたオブジェクトであります予想される出力は、最後の4カ国語で。

    しかし、この方法は、解雇されていないが、何も反対側に伝わってくるん。何も。ジップ。

    私は、デフォルトでStrings.fr.resxファイルを交換する場合Strings.resx次に私のサイトは期待通りに機能しますが、Strings.en-ZW.resxファイルはStrings.resxと同じです(各文字列のみ私はそれが問題だとは思わない。また、すべてのユニコード変換( `、é、â、etc)を削除してfrロケールを使用しようとしましたが、それは役に立たなかった。

    私はこれをほぼ一日中続けてきましたが、この問題を示す何も見つかりませんでした。enがうまく動作し、en-ZWが実際に私を混乱させないという事実は見つかりませんでした。

    誰もが何か提案がありますか?

    ハブ方法:

    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); 
           } 
          } 
         } 
        } 
    
        [...] 
    } 
    

    Javascriptを:

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

    2

    は、フィルタリングシステムは、それがされている必要があり、言語に依存しないではなかったが判明、私は中に接続がダングリングによる偽陽性を得ていましたデバッグ。

    今はかなり愚かだと感じます。