Salut dans mon application J'utilise SignalR pour stocker l'utilisateur et mappage de connexion signalR. J'ajoute des connexions et mappage utilisateur sur événement OnConnected() et la suppression des connexions sur OnDisconnected() événement.SignalR onDisconnected (bool stopCalled) est appelé Téléchargement de fichier dans MVC
L'événement OnDisconnected est appelé lorsqu'un fichier est téléchargé depuis l'application, ce qui supprime les connexions de l'utilisateur. Voici le code pour le fichier télécharger
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 ou événements onConnected ne sont pas appelés se suite, ce qui entraîne la perte de données (cartographie de connexion utilisateur stockées sur OnConnectedEvent). Le système ne peut donc pas envoyer de notification à une connexion utilisateur supprimée.
est Ci-dessous le code pour les événements SignalR
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();
}
Est-ce que quelqu'un a une idée pourquoi OnDisconnected événement est s'appelé téléchargement du fichier().
cds Salut, j'ai posté la solution au problème et il est fonctionne très bien, il est une fois la configuration centralisée. –