HttpContext.Current.Cache est-il disponible pour toutes les sessions?
Comme par titre. Je veux être en mesure d'économiser de données dans une mémoire cache de l'objet, mais cet objet doit être disponible pour tous les utilisateurs/sessions et peut expirer.
Quelle est la meilleure méthode pour atteindre cet objectif dans un asp.net web app?
source d'informationauteur Ekk | 2010-05-04
Vous devez vous connecter pour publier un commentaire.
HttpContext.Courant
est disponible pour tous les pagesmais pas nécessairement à tous les threads. Si vous essayez de l'utiliser à l'intérieur d'un thread d'arrière-plan,pool de threads
délégué, appel asynchrone (à l'aide d'un ASP.NET page Asynchrone), etc., vous vous retrouverez avec unNullReferenceException
.Si vous avez besoin pour obtenir l'accès à la cache à partir de la bibliothèque de classes, c'est à dire les classes qui n'ont pas la connaissance de la présente demande, vous devez utiliser
HttpRuntime.Le Cache
à la place. Ce qui est plus fiable, car il ne dépend pas d'unHttpContext
.HttpContext.Actuel.Cache sera présent, mais doit uniquement être utilisé si vous ne pouvez pas obtenir à votre contexte membre.
Aussi pour répondre à votre deuxième question, oui, la Cache objet global de l'application.
Voici une bonne intro à la mise en cache...
Comment mettre en cache en ASP.NET à l'aide de Visual C# .NET
et...
La mise en cache avec ASP.NET . Ne sautez pas de la partie 2, "mise en Cache des Données"