IIS liefert veraltete Inhalte, wenn Sie die Inhalte auf einer VHD speichern

Dieser Artikel hilft Ihnen, das Problem zu umgehen, bei dem Internetinformationsdienste (IIS) veraltete Inhalte liefert, wenn Sie den Inhalt auf einer virtuellen Festplatte (Virtual Hard Drive, VHD) speichern.

Ursprüngliche Produktversion:   Internetinformationsdienste 8.0
Ursprüngliche KB-Nummer:   2814040

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie hosten eine Webanwendung in IIS 8.0 oder früheren Versionen.
  • Sie haben den Inhalt für Ihre Webanwendung in einer VHD gespeichert.
  • Wenn Sie eine Aktualisierung des Inhalts vornehmen, z. B. eine neue Version einer Bilddatei hinzufügen oder Text auf einer Seite bearbeiten, erwarten Sie, dass der aktualisierte Inhalt eingehenden Webanforderungen bereitgestellt wird.

In diesem Szenario wird der aktualisierte Inhalt nicht angezeigt, und eingehende Webanforderungen werden mit der alten Inhaltsversion beantwortet.

Ursache

Dieses Verhalten tritt auf, weil Dateiänderungsbenachrichtigungen (File Change Notifications, FCN) nicht über Bereitstellungspunkte durchlaufen werden. Da HTTP.sys nicht benachrichtigt wird, dass eine neue Version des Inhalts verfügbar ist, wird weiterhin die Version des Inhalts bereitgestellt, die im Kernelmoduscache gespeichert wurde.

Problemumgehung

Um dieses Verhalten zu umgehen, wählen Sie eine der folgenden Optionen aus:

  • Leeren Sie den HTTP.sys-Cache für die Webanwendung manuell, nachdem Sie Aktualisierungen an den in der VHD gespeicherten Inhalten durchgeführt haben. Starten Sie den Anwendungspool neu, um den HTTP.sys Cache für die Anwendung zu leeren.

  • Speichern Sie Ihre Inhalte nicht auf einer VHD.

Schritte zum Reproduzieren

  1. Installieren Sie IIS.
  2. Erstellen Sie ein neues VDisk Objekt (z. B. C:\VDisk\Disks\DeDup und binden Sie es in C:\inetpub\wwwroot\DeDup ).
  3. Kopieren Sie eine PNG-Datei (2.png) in die neue VDisk .
  4. Aktivieren Sie DeDup für VDisk .
  5. Optimieren VDisk durch Ausführen ddpcli enqueue /opt /vol "C:\inetpub\wwwroot\DeDup" (FSUTIL-Analysepunktabfrage C:\inetpub\wwwroot\DeDup\2.png zeigt optimiert an).
  6. Laden http://ServerName/DeDup/2.png Sie .
  7. Bearbeiten C:\inetpub\wwwroot\DeDup\2.png und speichern Sie es.
  8. Laden http://ServerName/DeDup/2.png – Sehen Sie sich die Änderungen an.
  9. Erneute Optimierung VDisk (FSUTIL-Analysepunktabfrage "C:\inetpub\wwwroot\DeDup\2.png" wird optimiert angezeigt).
  10. Laden http://ServerName/DeDup/2.png – Sehen Sie sich die Änderungen an.
  11. Bearbeiten Sie C:\inetpub\wwwroot\DeDup\2.png sie erneut, und speichern Sie sie.
  12. FSUTIL-Analysepunktabfrage C:\inetpub\wwwroot\DeDup\2.png zeigt nicht optimiert an.
  13. Laden – die http://ServerName/DeDup/2.png neuesten Änderungen werden nicht angezeigt!
  14. Öffnen Sie die Datei direkt auf dem Inhaltsserver, um sicherzustellen, dass die Datei beide Änderungssätze enthält – dies ist der Vorgang.

Weitere Informationen