Désactiver la mise en cache de contenu statique dans IIS 7

9

Je suis un développeur ayant ce qui devrait être un problème relativement simple dans IIS 7 sur Windows Server 2008 R2. Le problème est que IIS 7 met en cache avec trop de zèle tout le contenu statique sur le serveur. Il met en cache tout le contenu .html et .js et ne remarque pas quand le contenu change sur le disque, sauf si je suis réinitialisé.

J'ai essayé ce qui suit:

  1. Suppression du cache local dans mon navigateur (je suis sûr à 99% qu'il s'agit d'un problème de mise en cache du serveur)
  2. Dans IIS Admin dans OutputCaching, ajouter une extension .html et décocher "Mise en cache en mode utilisateur" et décocher "Mise en cache en mode noyau"
  3. Dans IIS Admin dans OutputCaching, ajoutez une extension .html et vérifiez "Mise en cache en mode utilisateur" et sélectionnez la radio pour "Empêcher toute mise en cache"
  4. Dans IIS Admin, modifiez les paramètres de la fonctionnalité de cache de sortie et décochez "Activer le cache" et "Activer le cache du noyau sous OutputCaching.
  5. Exécution de "C: \ Windows \ System32 \ inetsrv \ config \ appcmd set config" SharePoint - 80 "-section: system.webServer / caching -enabled: false"
  6. En parcourant applicationHost.config et en désactivant tout ce qui concerne la mise en cache, je pourrais trouver.

Rien ne semble fonctionner. Je suis très frustré. quelqu'un peut-il aider s'il vous plait?

Lee Richardson
la source
2
Vous avez réussi à trouver une solution. Je fais face au même problème. J'ai tout essayé et je ne peux tout simplement pas désactiver la mise en cache. La seule façon est de changer le nom du fichier, de faire une demande, puis de revenir en arrière.
Tivie

Réponses:

4

J'aimerais vraiment voir la system.webServer/cachingsection de votre applicationhost.config et web.config. Veuillez les coller si vous le pouvez. En exécutant la commande appcmd ci-dessus, vous venez de désactiver la mise en cache en mode utilisateur, la mise en cache du noyau est toujours activée. De plus, si vous souhaitez vraiment désactiver la mise en cache au niveau du site Web ou du serveur, modifiez simplement les éléments suivants:

<system.webServer>
    <caching enabled="false" enableKernelCache="false" />
</system.webServer>

Vous pouvez également utiliser les outils Fiddler pour vérifier si le contenu est vraiment mis en cache, c'est-à-dire s'il vous renvoie 304.

Vivek Kumbhar
la source
0

Sur le serveur, si vous exécutez «netsh http show cache», voyez-vous des entrées mises en cache? Si tel est le cas, vous n'avez pas réussi à désactiver la mise en cache de sortie sur le serveur Web.


la source
0

Et juste 0,02 $ pour vérifier que vos gestionnaires sont bien ceux que vous attendez d'eux.

Les fichiers statiques sont généralement servis par le gestionnaire de fichiers statiques. Si vous avez fait des trucs fous comme créer une carte de script générique, ou enregistrer un module pour tous les types de fichiers et verbes ...

TristanK
la source