Dans mon application ASP.NET J'utilise httpwebrequest pour rechercher des ressources externes que j'aimerais être mis en cache. Considérez le code suivant: httpwebrequest utilise c.-à-d. Cache, donc lorsque je l'exécute en tant qu'utilisateur normal (dans Tiny CMD Test App), les données sont mises en cache à Je pensais que lorsque ce code est exécuté à l'intérieur de l'application ASP.NET, les données seront mises en cache sur Qu'est-ce que je fais mal? Comment forcer httpwebrequest à utiliser le cache dans l'environnement ASP.NET? P> P> % UserProfile% \ Paramètres locaux \ Fichiers Internet temporaires Code> et les réponses suivantes sont en lecture du cache. P>
... \ aspnet \ Paramètres locaux \ Fichiers Internet temporaires Code> Mais ce n'est pas et cache n'est jamais utilisé. P>
3 Réponses :
Je pourrais me tromper, mais je soupçonnerais que Vérifiez les en-têtes de réponse et assurez-vous que la ressource ne demande pas explicitement de ne pas être mise en cache. p> httpwebrequest code> respecte les en-têtes de cache de la ressource, quel que soit vos désirs indiqués. P>
J'ai également soupçonné des en-têtes alors je construis une petite application CMD qui rend httpRequest à la même ressource. Dans l'application CMD, il est mis en cache. Et dans l'application ASP.NET, ce n'est pas le cas.
Vous pouvez utiliser le cache manuellement dans votre code comme celui-ci: Vous pouvez utiliser cette méthode comme vous utiliseriez la mise en cache avec Web.config. P> P>
Je finirai probablement à mettre en œuvre le cache personnalisé, mais j'espérais une solution simple "hors de la boîte" ...
Je pense qu'il n'y a pas de la boîte pour votre problème, mais cela ne devrait pas être un gros problème à mettre en œuvre.
Je sais que c'est un vieux fil, mais une autre chose à considérer concernant ce problème est les paramètres de sécurité IE pour le compte d'utilisateur L'application ASP.NET est en cours d'exécution. Caching HTTP (CACHEPOLICY.LEVEL = Par défaut, HTTP Cacheable Resources) ne fonctionnait pas pour notre application tant que nous avons ajouté l'hôte distant à la liste des sites de confiance. P>
Cet article a été utile pour notre dépannage de cache: http://blogs.msdn.com/b/ieInternals/archive/2011/03/19/wininet-temporary-Internet-files-Cache-and-Explorer -Folder-View.aspx P>
Quel compte est votre application ASP.NET fonctionnant sous? Le cache sera créé sous ce compte.
@feroze: L'application est exécutée sous le compte ASPNET et je connais le chemin des fichiers Internet temporaires de l'examen de l'environnement.Specialfolder.InternetCache. Le problème n'est pas que je ne sais pas où des entrées de cache sont créées mais elles ne sont pas créées du tout.
Pouvez-vous ajouter une ligne à fermer et à éliminer l'objet de réponse: resp.close (); et ensuite vérifier si vous rencontrez toujours des problèmes?