Question

Est-il possible d'effacer le cache de sortie d'une application Web asp.net à partir d'une autre application Web asp.net?

Raison d'être ... Nous avons plusieurs applications wep structurées comme ...

Les pages de / area1 / et / area2 / sont mises en cache et gérées via / intranet / cms /. Lorsqu'une page est modifiée à l'aide de / intranet / cms /, je souhaite l'effacer du cache dans le / secteur # / application approprié.

J'ai déjà essayé d'utiliser un VaryByCustom qui recherche un GUID stocké dans HttpContext.Cache mais qui semble être mis en cache par application Web, cela ne fonctionne pas.

Vraiment, s'il existait un moyen de transmettre des données entre des applications Web sur un seul serveur, cela résoudrait mon problème, car je peux utiliser + VaryByCustom.

Merci!

-Mike Thomas

Était-ce utile?

La solution

Par le passé, j’ai utilisé la méthode "masquée". page (dans chacun des sites / areaX ) qui effectue le vidage, le rechargement, etc. La page valide un paramètre de requête secret partagé avant toute action (pour éviter les attaques par déni de service). Si elle est valide, la page générera un " OK " message une fois l'opération terminée; génère une erreur 404 si le secret est invalide.

Si vous souhaitez que le flush soit par élément ou par groupe, ajoutez un deuxième paramètre identifiant cet élément / groupe.

Cette méthode est également indépendante de la technologie serveur et peut être déclenchée par d'autres outils de gestion si nécessaire.

Autres conseils

Pour ce faire, je peux utiliser une ressource partagée comme dépendance, généralement un fichier. Lorsque le fichier est modifié, le cache est effacé. Je pense que vous pouvez utiliser HttpResponse.AddFileDependency . pour cela.

Toutefois, dans ces cas, il est généralement préférable d'utiliser un cache en dehors du processus, tel que memcached . Je ne l'ai pas testé moi-même, mais ce link traite de l’utilisation de memcached avec OutputCache.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top