2010-08-15 10 views
1

Je souhaite savoir comment expirer la mise en cache de sortie d'une page spécifique par programme, quelle que soit la durée d'expiration.Supprimer le cache de sortie par programme

J'ai trouvé plusieurs messages et articles en ligne concernant cette question et je trouve sur cette article que cette ligne de code fait le travail

HttpResponse.RemoveOutputCacheItem("/caching/CacheForever.aspx"); 

Je l'ai essayé plusieurs fois, mais il ne supprime pas le cache de sortie. Dans la même démo, il y avait une autre façon d'ajouter le cache de sortie en utilisant une clé ajoutée en tant que dépendance de cache. Je l'ai essayé et ça fonctionne, mais je veux savoir pourquoi la méthode RemoveOutputCacheItem ne fonctionne pas. Il semble que c'est celui fait pour faire ce travail, des idées?

+0

Il est difficile de répondre à cette question sans plus de détails. Il est évident que la méthode RemoveOutputCacheItem est censée supprimer les éléments du cache de sortie. Si vous dites que ce n'est pas le cas, alors ASP.NET a un bug ici, ce qui est peu probable, ou vous faites quelque chose de mal. Sans savoir plus de détails, il est difficile de dire ce que c'est. Comment savez-vous qu'il ne nettoie pas le cache, comment savez-vous que vous passez la bonne chaîne à la méthode? –

Répondre

1

Une vieille, mais utile, question - votre ligne de code a travaillé pour moi, merci!

L'un des cas où cela ne fonctionnerait pas serait quand vous dites la OutputCache pour mettre en cache permanetly sur la machine client à l'aide

HttpCacheability.Public ou HttpCacheability.Private

Ensuite, le client ne serait pas aller vérifier pour un fichier mis à jour jusqu'à ce que son propre cache soit effacé, indépendamment de ce que vous faites du côté serveur.

Questions connexes