Contextela mise en cache de sortie en ajoutant encore Cache-Control: no-cache même lorsqu'il est désactivé
Un client exécute notre application web. sur HTTPS et sont en cours d'exécution dans le IE8 "(ne sait pas écrire) fichier ne peut être écrit en cache" erreur lorsqu'ils essaient d'afficher un fichier PDF/Excel/word parce que la réponse contient la directive HTTP Cache-Control:no-cache
. Le fait est que ce n'est pas notre application (ou sa config) qui ajoute cette directive.
Après un peu d'investigation, j'ai découvert que la fonction de mise en cache de sortie de page IIS7 peut également ajouter cet en-tête, par exemple
<caching enabled="false" enableKernelCache="false">
<profiles>
<add extension=".htm" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
</profiles>
</caching>
aura pour effet d'ajouter Cache-Control:no-cache, private
aux en-têtes de réponse.
Ma question
Mais le surprenant (OMI) chose est que même lorsque vous censé désactiver la fonction (voir dans mon extrait de configuration ci-dessus que enabled="false"
), les en-têtes de réponse sont encore envoyés avec Cache-Control:no-cache, private
. Suis-je stupide d'être surpris par cela (je suppose que je suis probablement)?
Ce droit ici devrait être la bonne réponse. – Prescient
Non, ce n'est pas correct. Vous l'avez probablement fait fonctionner parce que vous avez défini la section '' ailleurs. Lorsque vous supprimez le point, cette extension d'ajout devient inutile, ce qui rend la section '' effective. –
chenz
** C'est juste correct! ** J'ai juste essayé ce "sachant" que cela ne fonctionnerait pas parce que, bien, l'exemple IIS vous donne dans l'interface graphique pour la mise en cache de sortie montre que vous devez inclure le '.' avant l'extension ... ** Mais cela a fonctionné! ** Je vous assure, c'est la bonne réponse pour IIS 8 - voir ici http://i66.tinypic.com/2e249af.png – Jimbo