J'ai un filtre d'action ASP.NET MVC qui définit l'en-tête de contrôle de cache de la réponse. Tout fonctionne bien sauf si je le publie sur le serveur web.Changements au contrôle du cache ASP.NET sur le serveur
Quand je suis en cours d'exécution à travers localhost-je obtenir les éléments suivants:
Cache-Control:public, max-age=172800
Connection:Close
Content-Length:15057
Content-Type:application/pdf
Date:Thu, 23 Jun 2011 17:09:09 GMT
Server:ASP.NET Development Server/9.0.0.0
X-AspNet-Version:2.0.50727
X-AspNetMvc-Version:2.0
Lors de l'exécution par le site en direct
Cache-Control:public
Content-Length:15057
Content-Type:application/pdf
Date:Thu, 23 Jun 2011 17:09:45 GMT
Server:Microsoft-IIS/6.0
X-AspNet-Version:2.0.50727
X-AspNetMvc-Version:2.0
X-Powered-By:ASP.NET
Donc, pour une raison quelconque max-age
est effacé dehors et je ne peux pas IT out. La seule différence que je peux comprendre est que le site de développement passe par le serveur web de Cassini et que le live est IIS, alors peut-être que IIS efface le max-age?
Que dois-je faire pour conserver la valeur max-age dans l'en-tête de contrôle de cache?
EDIT: Voici une photo du nœud system.webServer dans le web.config au cas où il pourrait y avoir quelque chose à regarder.
Avez-vous vérifié l'onglet En-têtes HTTP dans IIS? – Jay
@Jay Je viens de le modifier pour expirer dans deux jours dans l'onglet en-têtes HTTP, mais toujours pas de changement dans les en-têtes de réponse. Pourrait-il être mon web.config? Peut-être que HttpModule est en train de jouer avec les en-têtes? – Jose
J'en doute. Ne peut pas être 100% sur ce point, mais IIS est le dernier à toucher les réponses à mesure qu'elles sortent. À partir de ce point, un nœud de serveur/réseau externe peut-il jouer avec les en-têtes? – Jay