J'ai deux applications - l'une est un site Web asp.net et l'autre est un service Windows. Les deux applications font référence à ma couche de gestion (projet de bibliothèque), qui référence elle-même ma couche d'accès aux données (projet de bibliothèque) qui utilise elle-même le bloc d'application de données de la bibliothèque d'entreprise.Un cache pour diverses applications?
actuellement l'objet i utiliser System.Web.Caching.Cache dans mon BL pour mettre en cache certains de mes objets:
public static System.Web.Caching.Cache Cache
{
get
{
if(cache == null)
{
if (System.Web.HttpContext.Current != null)
{
//asp.net
cache = System.Web.HttpContext.Current.Cache;
}
else
{
//windows service
cache = System.Web.HttpRuntime.Cache;
}
}
return cache;
}
}
que les deux applications sont en cours d'exécution sur leur propre - ils utilisent tous deux un objet cache séparé par eux-mêmes - et c'est le problème en fait:
si je change un objet sur le site Web asp.net et l'enregistre dans la base de données. l'objet de cette clé de cache est retiré du cache - le cache de l'application asp.net! C'est très bien.
mais le cache du service Windows devient obsolète!
vice-versa
est-il possible que les deux applications utilisent le même cache? Un cache pour les deux applications?
la seule option que j'ai je pense est que je vais devoir utiliser SqlDependency avec
est-il une autre façon?
EDIT: je viens de trouver http://www.codeplex.com/SharedCache. Je vais essayer. car la vélocité sera dans le statut de candidat à la publication jusqu'au milieu de l'année 2009.
Props to Scott, mais la vitesse n'est pas prête pour l'environnement de production de n'importe qui. – jro
J'entends ce que vous dites, mais Velocity est en production partout. Cela dit, il y a aussi memcached et d'autres solutions tierces. –