2010-06-01 23 views
6

tengo una página aspx simple. Aquí está la parte superior de la misma: -¿Por qué el uso de ASP.NET OutputCache sigue generando 200 OK, no 304 Not Modified?

<%@ Page 
    Language="C#" 
    AutoEventWireup="true" 
    CodeFile="Foo.aspx.cs" 
    Inherits="Foo" %> 
<%@ OutputCache Duration="3600" VaryByParam="none" Location="Any" %> 

Ahora, cada vez que me golpeó la página en Firefox (o bien presione F5 o pulsa enter en la barra de URL) me siguen dando una respuesta 200 OK. He aquí una respuesta muestra de FireBug: -

Solicitar encabezados: -

encabezados
GET /sitemap.xml HTTP/1.1 
Host: localhost.foo.com.au 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2) 
      Gecko/20100115 Firefox/3.6 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-au,en-gb;q=0.7,en;q=0.3 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 115 
Connection: keep-alive 
Cookie: <snipped> 
If-Modified-Since: Tue, 01 Jun 2010 07:35:17 GMT 
If-None-Match: "" 
Cache-Control: max-age=0 

Respuesta: -

pestaña
HTTP/1.1 200 OK 
Cache-Control: public 
Content-Type: text/xml; charset=utf-8 
Expires: Tue, 01 Jun 2010 08:35:17 GMT 
Last-Modified: Tue, 01 Jun 2010 07:35:17 GMT 
Etag: "" 
Server: Microsoft-IIS/7.5 
X-Powered-By: UrlRewriter.NET 2.0.0 
X-AspNet-Version: 4.0.30319 
Date: Tue, 01 Jun 2010 07:35:20 GMT 
Content-Length: 775 

Firebug caché: -

Last Modified Tue Jun 01 2010 17:35:20 GMT+1000 (AUS Eastern Standard Time) 
Last Fetched Tue Jun 01 2010 17:35:20 GMT+1000 (AUS Eastern Standard Time) 
Expires Tue Jun 01 2010 18:35:17 GMT+1000 (AUS Eastern Standard Time) 
Data Size 775 
Fetch Count 105 
Device disk 

Ahora, si yo Pruébalo en Fiddler usando el Creador de solicitudes (y sin datos adicionales) También sigo obteniendo la misma respuesta de 200 OK.

Solicitar encabezados: -

GET http://localhost.foo.com.au/sitemap.xml HTTP/1.1 
User-Agent: Fiddler 
Host: foo.com.au 

las cabeceras de respuesta: -

HTTP/1.1 200 OK 
Cache-Control: public 
Content-Type: text/xml; charset=utf-8 
Expires: Tue, 01 Jun 2010 07:58:00 GMT 
Last-Modified: Tue, 01 Jun 2010 06:58:00 GMT 
ETag: "" 
Server: Microsoft-IIS/7.5 
X-Powered-By: UrlRewriter.NET 2.0.0 
X-AspNet-Version: 4.0.30319 
Date: Tue, 01 Jun 2010 06:59:16 GMT 
Content-Length: 775 

Parece que está pidiendo para almacenar en caché, pero no es :(

servidor es un IIS7.5 localhost en Win7. (como figura en los datos de respuesta).

¿Alguien puede ver lo que estoy haciendo mal?

+0

Podría ocurrir por la reescritura de URL. Intenta acceder a la página a través de la ruta ~ .aspx, si está bien, por lo que el motivo es el módulo urlRewriter. –

+0

@ Pure.Krome alguna vez encontró una explicación/solución para esto? –

+0

@ GabyakaG.Petrioli no. nunca tengo un aswer por esto. –

Respuesta

0

Intente ejecutar el sitio web desde una máquina diferente para asegurarse de que esto no es el comportamiento de las llamadas locales.

+0

Obteniendo lo mismo. todos los 200's –

2

Creo que debe establecer VaryByParam="" en su lugar "none" para obtener el expected 304 (no modificado cuando el usuario use la tecla Entrar en la barra de direcciones).

El uso de "" Vary HttpHeader es no enviado al servidor como parte de los encabezados de solicitud.

El uso de "None" Vary HttpHeaderes enviado al servidor como parte de los encabezados de solicitud.

Cuestiones relacionadas