2015-11-13 5 views
5

Ich habe an einem Projekt für einen Kunden gearbeitet und hatte viel Spaß dabei, SignalR in das System zu integrieren.SignalR Client-Aufrufe für bestimmte Sprachen fehlgeschlagen

Alles scheint wirklich gut zu funktionieren und der Kunde ist wirklich begeistert, wie das SignalR echtes Echtzeit-Feedback für seine Anwendung liefert.

Zum größten Teil ist alles gut gelaufen, aber ich bin in ein seltsames Problem geraten, das ich einfach nicht festhalten kann.

Alles funktioniert gut für die folgenden Gegenden:

  1. en-US
  2. en-GB
  3. es
  4. nl

Allerdings sind diese Sprachen einfach bekommen nie einen Rückruf aus der Hub:

  1. fr
  2. de
  3. es
  4. en-ZW - wir Englisch Zimbabwe verwenden, um alle Saiten zu überprüfen sind übersetzt.

I bis Schritt durch den Code kann bis Clients.Client(ConnectionId).update(Result); (wo ConnectionId die richtige Verbindungs-ID ist, und Ergebnis ist das Objekt fertig serialisiert werden, mit den ersten vier Sprachen dieses einwandfrei geht und ich meine Javascript-Methode mit die erwartete Ausgabe.

auf den letzten vier Sprachen jedoch das Verfahren gebrannt, aber nichts kommt durch auf die andere Seite. nichts. Zip.

Wenn ich die Strings.fr.resx Datei mit dem Standard ersetzen Strings.resx dann funktioniert meine Website wie erwartet, aber da die Strings.en-ZW.resx-Datei mit Strings.resx identisch ist (nur jede Zeichenfolge ist eingewickelt in [()]) Ich bezweifle, dass das das Problem ist. Ich habe auch versucht, das fr-Gebietsschema mit allen Unicode-Übersetzungen (`, é, â, usw.) zu entfernen, aber das hat nicht geholfen.

Ich habe jetzt fast einen ganzen Tag lang darüber nachgedacht und nichts gefunden, was auf das Problem hinweisen würde, und die Tatsache, dass es gut funktioniert und En-ZW, verwirrt mich nicht wirklich.

Hat jemand irgendwelche Vorschläge?

Hub-Methode:

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(); 

Antwort

2

Schaltet das Filtersystem heraus war nicht sprachunabhängig, wo es sein sollte, und ich war immer Fehlalarme aufgrund baumelnden Verbindungen während debuggen.

Ich fühle mich jetzt ziemlich dumm.