2009-09-13 5 views
0

Actuellement, j'ai créé mon PerWebRequestLifetimeManager personnalisé en utilisant HttpContext.Current.Items comme magasin de sauvegarde. J'ai utilisé ce gestionnaire de durée de vie pour Linq2Sql DataContext.
Tout fonctionne correctement jusqu'à ce que j'ai besoin d'utiliser Cache pour stocker des données (pendant 5 min). Après 5 minutes, j'ai besoin de récupérer les données de DB et de les mettre dans le cache. Pour ce faire, j'ai besoin d'utiliser Linq2Sql DataContext pour récupérer des données. Mais pendant ce temps, HttpContext.Current est null car ce qui s'est passé lors de l'expiration du cache; pas dans la demande Web.
Alors, quel type de LifetimeManager dois-je utiliser pour ce scénario?PerWebRequest LifetimeManager et au-delà (Asp.net Mvc)

Merci d'avance.

Répondre

0

Vous avez besoin d'un DataConext de longue date? Utilisez un conteneur LifeTimeManager. Je créerais un conteneur qui réside au niveau de l'application (probablement dans votre fichier Global.asax), puis l'utiliser pour résoudre votre DataContext pour ce scénario spécifique. Je voudrais éviter d'espérer que les choses sont conservées dans le cache, à la place, vous pourriez envisager d'exécuter cette tâche de manière asynchrone si vous le pouvez.

Espérons que cela aide.