IIS sirve contenido obsoleto al almacenar el contenido en un VHD

Este artículo le ayuda a solucionar el problema en el que Internet Information Services (IIS) sirve contenido obsoleto al almacenar el contenido en un disco duro virtual (VHD).

Versión del producto original:   Internet Information Services 8.0
Número KB original:   2814040

Síntomas

Imagina la siguiente situación:

  • Va a hospedar una aplicación web en IIS 8.0 o versiones anteriores.
  • Ha almacenado el contenido de la aplicación web en un VHD.
  • Cuando se realiza una actualización del contenido, como agregar una nueva versión de un archivo de imagen o editar texto en una página, se espera que el contenido actualizado se pueda servir a las solicitudes web entrantes.

En este escenario, el contenido actualizado no se muestra y las solicitudes web entrantes se responden con la versión de contenido antigua.

Causa

Este comportamiento se produce porque las notificaciones de cambio de archivo (FCN) no atraviesan los puntos de montaje. Dado HTTP.sys no se notifica que hay disponible una nueva versión del contenido, sigue atienden la versión del contenido que ha almacenado en la memoria caché del modo kernel.

Solución alternativa

Para evitar este comportamiento, elija una de las siguientes opciones:

  • Vaciar manualmente la HTTP.sys caché de la aplicación web después de realizar actualizaciones del contenido almacenado en el VHD. Para vaciar la HTTP.sys caché de la aplicación, reinicie el grupo de aplicaciones.

  • No almacene el contenido en un VHD.

Pasos para reproducir

  1. Instalar IIS.
  2. Crear nuevo VDisk (por ejemplo, C:\VDisk\Disks\DeDup y montarlo en C:\inetpub\wwwroot\DeDup ).
  3. Copie un archivo PNG (2.png) en el nuevo VDisk .
  4. Habilitar DeDup en VDisk .
  5. Optimizar VDisk haciendo ddpcli enqueue /opt /vol "C:\inetpub\wwwroot\DeDup" (la consulta de reparsepoint FSUTIL C:\inetpub\wwwroot\DeDup\2.png muestra optimizado).
  6. Cargar http://ServerName/DeDup/2.png .
  7. Edite C:\inetpub\wwwroot\DeDup\2.png y guárdelo.
  8. Load: http://ServerName/DeDup/2.png vea los cambios.
  9. Optimizar VDisk de nuevo (FSUTIL reparsepoint query "C:\inetpub\wwwroot\DeDup\2.png" muestra optimizado).
  10. Load: http://ServerName/DeDup/2.png vea los cambios.
  11. Vuelva C:\inetpub\wwwroot\DeDup\2.png a editar y guárdelo.
  12. La consulta de reparsepoint FSUTIL C:\inetpub\wwwroot\DeDup\2.png muestra que no está optimizada.
  13. Load: http://ServerName/DeDup/2.png no veas los cambios más recientes.
  14. Abra el archivo directamente en el servidor de contenido para asegurarse de que el archivo contiene ambos conjuntos de cambios: lo hace.

Más información