Deaktivieren Sie das Zwischenspeichern statischer Inhalte in IIS 7

9

Ich bin ein Entwickler mit einem relativ einfachen Problem in IIS 7 unter Windows Server 2008 R2. Das Problem ist, dass IIS 7 alle statischen Inhalte auf dem Server übereifrig zwischenspeichert. Es speichert alle .html- und .js-Inhalte zwischen und merkt nicht, wann sich der Inhalt auf der Festplatte ändert, es sei denn, ich setze zurück.

Ich habe folgendes versucht:

  1. Löschen des lokalen Caches in meinem Browser (Ich bin zu 99% sicher, dass dies ein Problem beim Zwischenspeichern von Servern ist.)
  2. Fügen Sie in IIS Admin in OutputCaching eine HTML-Erweiterung hinzu und deaktivieren Sie "Caching im Benutzermodus" und deaktivieren Sie "Caching im Kernelmodus".
  3. Fügen Sie in IIS Admin in OutputCaching eine .html-Erweiterung hinzu, aktivieren Sie "Caching im Benutzermodus" und wählen Sie das Radio für "Alle Cachings verhindern" aus.
  4. Bearbeiten Sie in IIS Admin die Einstellungen für die Ausgabe-Cache-Funktion und deaktivieren Sie unter "Ausgabe-Caching" die Option "Cache aktivieren" und "Kernel-Cache aktivieren".
  5. Ausführen von "C: \ Windows \ System32 \ inetsrv \ config \ appcmd set config" SharePoint - 80 "-Abschnitt: system.webServer / caching -enabled: false"
  6. Durchsuchen Sie applicationHost.config und deaktivieren Sie alles, was mit Caching zu tun hat.

Nichts scheint zu funktionieren. Ich werde sehr frustriert. Kann mir bitte jemand helfen?

Lee Richardson
quelle
2
Haben Sie es geschafft, eine Lösung zu finden? Ich stehe vor dem gleichen Problem. Ich habe alles versucht und kann das Caching einfach nicht deaktivieren. Die einzige Möglichkeit besteht darin, den Dateinamen der Datei zu ändern, eine Anfrage zu stellen und dann zurück zu wechseln.
Tivie

Antworten:

4

Ich würde wirklich gerne einen system.webServer/cachingAbschnitt aus Ihrer applicationhost.config und web.config sehen. Bitte fügen Sie sie ein, wenn Sie können. Durch Ausführen des obigen Befehls appcmd haben Sie gerade das Caching im Benutzermodus deaktiviert und das Kernel-Caching noch aktiviert. Wenn Sie das Caching auf Website- oder Serverebene wirklich deaktivieren möchten, ändern Sie einfach Folgendes:

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

Sie können auch Fiddler-Tools verwenden, um zu überprüfen, ob der Inhalt wirklich zwischengespeichert ist, dh ob er Ihnen 304 zurückgibt.

Vivek Kumbhar
quelle
0

Wenn Sie auf dem Server 'netsh http show cache' ausführen, werden zwischengespeicherte Einträge angezeigt? Wenn ja, haben Sie das Ausgabe-Caching auf dem Webserver nicht erfolgreich deaktiviert.


quelle
0

Und nur 0,02 US-Dollar, um zu überprüfen, ob Ihre Handler die Handler sind, die Sie erwarten.

Statische Dateien werden normalerweise vom statischen Dateihandler bereitgestellt. Wenn Sie verrückte Dinge getan haben, wie das Erstellen einer Wildcard-Skriptzuordnung oder das Registrieren eines Moduls für alle Dateitypen und Verben ...

TristanK
quelle