2009-11-25 8 views
2

J'ai utilisé le cache HttpRuntime pour mettre en cache des préférences utilisateur simples sur une application interne [dasboard] asp.net qui est utilisée par près de 200 utilisateurs par jour. Je cache simplement des choses telles que les dernières conditions de requête, des échelles, des options (juste des cases à cocher dépendantes d'autres cases à cocher, etc.) juste pour qu'un utilisateur ferme le navigateur, il retourne à l'option tableau de bord/rapport la prochaine fois qu'ils ouvrent le navigateur.Quelle est la durée de vie du cache HttpRuntime (une alternative simple?)

Je ne souhaite pas utiliser la base de données pour mettre en cache ces valeurs car elles sont "illimitées" et "dynamiques".

Quoi qu'il en soit, le HttpRunime Cahce fonctionne correctement, mais maintenant, de temps en temps, il ne fonctionne plus sur le serveur de production. Y at-il une approche pour résoudre ce problème?

Répondre

2

Le cache couvre l'ensemble de l'application. Cachez-vous ces éléments par utilisateur?

Le cache mourra périodiquement et vous n'aurez aucun contrôle sur celui-ci - si vous avez besoin que ces éléments persistent, alors la mise en cache de la base de données peut être la seule solution. Edit - en ce qui concerne l'illimité et dynamique, vous pourriez potentiellement les stocker dans un champ XML dans la base de données. Si vous avez un objet où ils sont actuellement stockés dans le cache, il serait relativement facile de le sérialiser/désérialiser à partir de la base de données, si le cache est vide.

+0

En fait, je n'ai persisté que les paramètres cruciaux pour la base de données et les paramètres non critiques pour un cookie – Tawani

1

Des paramètres de délai d'expiration et d'expiration absolue sont disponibles lorsque vous insérez dans le cache, mais lorsque le pool d'applications est recyclé, le cache est effacé. Vérifiez votre paramètre de pool d'applications dans IIS, et voyez à quelle fréquence il recycle.