Ich habe ein Problem, wenn gehen Download oder Upload-Datei (WebClient.DownloadFileAsync | UploadFileAsync oder von HttpWebRequest) und SignalR-Hub Methoden gleichzeitig aufrufen:SignalR: keine Messaging bis Datei hochgeladen/auf der gleichen Website heruntergeladen
SignalR Anrufe wurden gestoppt, bis die Datei geladen wurde. Es sieht so aus: Alle Signaler-Aufrufe in Warteschlangen. Alle in die Warteschlange eingereihten Aufrufe werden weiter ausgeführt (nach dem Laden der Datei).
Mein Codefragment:
hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading started ", 0);
DownloadFileByKey(fileKey, (progressPercentage, bytesSent) => { hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading in progress", progressPercentage); });
hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading finished", 100);
Second "TraceDocumentUploadingRequest" Hub Methodenaufruf (in der Datei Lastaufnahmemittel) auf der Nabe nach Datei herunterzuladen Abschluss ausgeführt werden.
Dateiladeprogramm wird sowohl im aktuellen als auch in einem anderen Thread ausgeführt (siehe DownloadFileByKey-Methodenrealisierung) - Ergebnis ist identisch.
Wie kann ich dieses Verhalten vermeiden und Hub-Methodenaufrufe zur richtigen Zeit erzwingen?
Welche Version von SignalR verwenden Sie? – davidfowl
Alle Komponenten sind von 1.1.3 Version – Dmitry
Das haben wir in späteren Versionen von SignalR behoben. Um dieses Problem zu umgehen, können Sie versuchen, die Anzahl der gleichzeitigen Verbindungen im Service Point Manager auf etwa 100 zu erhöhen: ServicePointManager.DefaultConnectionLimit = 100; http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.defaultconnectionlimit.aspx – davidfowl