7

estoy usando el siguiente perfil de caché de resultados:Vary: * incorrectamente añadido a la respuesta de encabezado HTTP (asp.net MVC3)

<add name="MyFunkyProfile" duration="180" varyByParam="*" location="ServerAndClient" /> 

En dev, tengo una cabecera de respuesta con una sola entrada Vary:

HTTP/1.1 200 OK 
Server: Microsoft-IIS/7.5 
... 
Vary: Accept-Encoding 
Cache-Control: private, max-age=180, s-maxage=0 
... 

Cuando despliego mi aplicación, tengo un extra varían entrada insertado en la respuesta:

HTTP/1.1 200 OK 
Server: nginx 
... 
Vary: Accept-Encoding 
Cache-Control: private, max-age=180, s-maxage=0 
... 
Vary: * 
... 

¿por qué este adicionales varían de entrada? Esto impide que la memoria caché funcione correctamente.

¿Alguna idea de cómo solucionar esto?

Respuesta

0

¿Ha intentado establecer varyByParam en None en su archivo de perfil/configuración? Ver http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx.

Además, adivinando aquí: ¿el archivo de configuración difiere entre dev y 'en vivo', p. varyByParam se puede configurar de manera diferente?

Nota: Acabo de unirme a SO, por lo que aún no puedo agregar comentarios (lo que habría hecho en lugar de publicar esto como respuesta).

+0

No se puede establecer varyByParam en Ninguno, esto arrojará resultados incorrectos. No el varyByParam se configura de la misma manera en dev y prod. El servidor es diferente; servidor de desarrollo vs IIS. – nakhli

0

El encabezado Vary: Accept-Encoding se inserta mediante la capa de enrutamiento AppHarbor. El encabezado es necesario para obtener los proxys descendentes (por lo general, una CDN como AWS CloudFront o similar) para almacenar correctamente en caché las versiones gzip'ed y no gzip'ed de su contenido. Esto question has additional details.

¿Puede detallar cómo esto está causando problemas para su aplicación?

+0

La estrella variable es insertada por el marco por defecto a menos que se especifique varyByParam = "" (observe que varyByParam = "*" aún genera una estrella variable) vea la respuesta de Atwood aquí http://stackoverflow.com/a/486072/125804. Trabajó alrededor del problema. Publicaremos la solución aquí como respuesta. – nakhli

Cuestiones relacionadas