Cache.SetMaxAge funktioniert nicht unter IIS, funktioniert gut unter VS Dev-Srv -
Ich versuche, fügen Sie ein "max-age" - header, um meine Antwort. Es funktioniert gut auf meinem Visual Studio Development Server, aber sobald ich mich wieder bewegen Sie die app auf IIS (beides ausprobiert IIS express lokal und IIS auf dem server) - der header verschwindet.
Mein code:
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetMaxAge(new TimeSpan(1, 0, 0, 0));
VS Dev server-Antwort (funktioniert alles problemlos):
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Fri, 07 Jan 2011 14:55:04 GMT
X-AspNet-Version: 2.0.50727
Cache-Control: public, max-age=86400
IIS7 Antwort
HTTP/1.1 200 OK
Server: Microsoft-IIS/7.5
Date: Fri, 07 Jan 2011 15:00:54 GMT
X-AspNet-Version: 2.0.50727
Cache-Control: public
PS. Es ist ein ASHX-handler, wenn es darauf ankommt...
Du musst angemeldet sein, um einen Kommentar abzugeben.
AKTUALISIERUNG: 2011-03-14 Die Lösung ist, sicherzustellen, dass Sie rufen SetSlidingExpiration(true)
Wenn Sie entfernen Sie die OutputCache-Modul erhalten Sie das gewünschte Ergebnis zu erhalten. Ich sehe das als einen bug.
So, in Ihrer Website.config würden Sie Folgendes tun:
HINZUGEFÜGT: So gibt es zusätzliche Informationen.
Folgende Streifen der s-maxage
Folgende Streifen der s-maxage
Diese NICHT - go figure...
SetSlidingExpiration(true)
ist festgelegt, dass diemax-age
ausgelassen wird aus den Response-Header. In ähnlicher Weise, indemOutputCache
, FWR einExpires
header ist auch Hinzugefügt, um die Response-header (mit den entsprechenden UNIX-timestamp max-age). Ihre Lösung war der einzige Weg, ich könnte die Inhalte werden vom browser zwischengespeichert.[OutputCache]
Attribute undResponse.Cache.
- das macht es nur schlimmer. Nur manipulierenResponse.Cache
.Lösung:
in
web.config
:- und en-IIS PC:
Mit cmd gehen
c:\windows\system32\inetsrv
.Dann ausführen:
Verspätet beantwortet, aber dies könnte jemand helfen :-