temporales miscelaneos mis memoria internet fotos cómo cache bueno borro borrar borran archivos xml caching iis azure iis-7

xml - miscelaneos - es bueno borrar la memoria cache



¿Cómo desactivo el almacenamiento en caché de un archivo individual en IIS 7 utilizando la configuración de configuración de weserver? (6)

¿Hay alguna manera de diablear el almacenamiento en caché de un solo archivo javascript en mi aplicación ASP.NET sin deshabilitar el almacenamiento en caché de ningún otro archivo en la aplicación?

Se ejecuta en IIS 7 en Azure, por lo que parece que mis únicas opciones para controlar esto están dentro de las etiquetas del servidor web.

Actualmente uso las siguientes configuraciones, pero esto es deshabilitar el caché en todos los archivos.

<modules runAllManagedModulesForAllRequests="true"/> <staticContent> <clientCache cacheControlMode="DisableCache"/> </staticContent> </system.webServer>

Solo quiero desactivar el caché de un solo archivo de JavaScript que cambia con bastante frecuencia.

¿Es posible?


Abra el panel IIS.

Abra la aplicación relacionada de los sitios, luego navegue a la carpeta que contiene el archivo en particular.

Ahora desde el panel derecho, cambie a la vista de contenido

Seleccione su archivo deseado

Ahora haga clic derecho en el archivo para elegir "Cambiar a la vista de funciones".

Desde allí, elija encabezados de respuesta HTTP, haga clic en "Agregar" para agregar un nuevo encabezado, agregue el encabezado "Control de caché" con el valor "sin memoria caché".


Me encontré con esta pregunta; Puede usar lo siguiente para deshabilitar la caché en un archivo específico:

<configuration> <location path="path/to/the/file"> <system.webServer> <staticContent> <clientCache cacheControlMode="DisableCache" /> </staticContent> </system.webServer> </location> </configuration>

(Tenga en cuenta que la ruta es relativa al archivo web.config)

De forma alternativa, coloque el único archivo en un directorio propio y proporcione a ese directorio su propio archivo web.config que deshabilita el almacenamiento en caché de todo lo que contiene;

<configuration> <system.webServer> <httpProtocol> <customHeaders> <add name="Cache-Control" value="no-cache" /> </customHeaders> </httpProtocol> </system.webServer> </configuration>

[Ambos probaron en IIS7.5 en Windows 7, pero tendrá que confirmar que funciona bien en Azure]


Parece que a la respuesta anterior le falta una etiqueta de "perfiles"

<caching> <profiles> <add extension=".js" kernelCachePolicy="DontCache" policy="DontCache"/> </profiles> </caching>


Puede desactivar el almacenamiento en caché de salida en el nivel de carpeta eliminando una extensión en el nivel de carpeta incluyendo un archivo web.config en esa carpeta como este

<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <caching> <profiles> <remove extension=".js" /> </profiles> </caching> </system.webServer> </configuration>

ahora esta carpeta no tendrá el caché de salida habilitado para los archivos que terminan en .js


Sí, es posible, puede hacerlo en el archivo de configuración:
(Ver https://.com/a/4821328/2247494 )

<configuration> <location path="cache.manifest"> <system.webServer> <staticContent> <clientCache cacheControlMode="DisableCache" /> </staticContent> </system.webServer> </location> </configuration>


Tendrá que mirar la clase System.WebServer / Caching, donde puede aplicar un perfil de caché a extensiones particulares. Esto al menos le permitirá controlarlo para todos los archivos Javascript que terminan en .js.

<system.webServer> ... <caching> <add extension=".js" policy="DontCache" kernelCachePolicy="DontCache" /> </caching> </system.webServer>

Esto debería deshabilitar el almacenamiento en caché de .js tanto en el proceso como en el almacenamiento en memoria caché del kernel desde la nube.

Creo que puedes crear este web.config en una carpeta que solo contenga tu archivo y deshabilitará el almacenamiento en caché de .js solo en ese nivel de carpeta. Honestamente, no lo he intentado solo, así que solo una sugerencia que podrías probar.

Más allá de eso, eche un vistazo a la documentación de IIS relacionada con la configuración de almacenamiento en caché:

/ Almacenamiento en caché: http://www.iis.net/ConfigReference/system.webServer/caching

/ Caching / Profiles: http://www.iis.net/ConfigReference/system.webServer/caching/profiles

/ Caching / Profiles / Add: http://www.iis.net/ConfigReference/system.webServer/caching/profiles/add

Con suerte, más algunas investigaciones sobre esas etiquetas de configuración ayudarán.

De lo contrario, recomendaría implementar un Módulo HTTP personalizado que pueda insertar en el conducto de solicitud de IIS, que puede filtrar su control de almacenamiento en caché a ese archivo en particular.

** lo que vale esto es solo el comportamiento de IIS y no será diferente dentro o fuera de Azure, por lo que podría probar fácilmente este local sin molestarse con el tejido Dev o las pruebas de Azure.