Hallo in meiner Anwendung Ich benutze SignalR, um das Benutzer- und signalR Connection Mapping zu speichern. Ich bin Hinzufügen von Verbindungen und Benutzerzuordnung auf OnConnected() Ereignis und Entfernen von Verbindungen auf OnDisconnected() Ereignis.SignalR onDisconnected (bool stopCalled) wird angerufen Dateidownload in MVC
Das Ereignis OnDisconnected wird aufgerufen, wenn eine Datei von der Anwendung heruntergeladen wird, wodurch die Benutzerverbindungen entfernt werden. Unten ist der Code für die Datei herunterladen
public ActionResult DownloadFile(string fileName)
{
// adding time stamp to file name
fileName = fileName.FileNameWithTimeStamp();
//Fetch file bytes from TempData
byte[] fileContent = (byte[])TempData[Constants.ExportedData];
return File(fileContent, Constants.ExcelContentType, fileName);
}
OnReconnected oder onConnected Ereignisse aufgerufen werden später nicht, was der Datenverlust (Benutzerverbindung Mapping auf OnConnectedEvent gespeichert) ergibt, ist. Daher kann das System keine Benachrichtigung an entfernte Benutzerverbindungen senden.
Unten finden Sie den Code für SignalR Ereignisse
public override Task OnDisconnected(bool stopCalled)
{
string name = Context.User.Identity.Name;
//Remove data to cache
cache.Remove(name.ToLower(),Context.ConnectionId);
return base.OnDisconnected(stopCalled);
}
public override Task OnConnected()
{
string name = Context.User.Identity.Name.ToLower();
if(!string.IsNullOrEmpty(name))
{
cache.Add(name, Context.ConnectionId);
}
return base.OnConnected();
}
Hat jemand eine Ahnung, warum onDisconnected Ereignis wird auf Dateidownload genannt zu werden().
Hallo cds, ich habe die Lösung für das Problem gebucht haben und es funktioniert gut, es ist eine Zeit, die zentrale Konfiguration. –