Benutzer mit den meisten Antworten
Cache-Control="public" erzwingen

Frage
-
Hallo liebe Gemeinde
es ist mir gegenwärtig nicht möglich, einem HttpHandler eine korrekte Cache-Policy zu geben.
Es existiert ein Http-Handler, der dynamisch erzeugtes CSS ausliefert. Hier es ist unbedingt erforderlich, das der gelieferte Inhalt des HttpHandlers vom Browser über einen größeren Zeitraum gecached wird.
Folgenden Code habe ich hierzu verwendet:
const int maxAge = 86400 * 7; // 7 Tage
context.Response.Cache.SetExpires(DateTime.Now.AddSeconds(maxAge));
context.Response.Cache.SetMaxAge(new TimeSpan(0, 0, maxAge));
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.Cache.SetLastModified(DateTime.Now);
context.Response.CacheControl = "public";
context.Response.Cache.SetValidUntilExpires(true) ;
Mittels FireBug habe ich aber festgestellt, das der gelieferte Inhalt nicht im Browser-Cache landet. Stattdessen wird der Code zur Erzeugung der Ausgabe stets neu generiert.
Dabei ist mir aufgefallen, das stets der Header "Cache-Control=private" gesendet wird! Ich gehe gegenwärtig davon aus, das hierin das Problem liegt.
Wie kann ich erreichen, das der IIS den Header "Cache-Control=public" ausliefert? Der obige Code scheint von ASP.NET oder dem IIS überschrieben zu werden.
Im Usenet fand ich andere Leute mit dem gleichen Problem, leider ohne brauchbare Antworten.
Als Entwicklungssystem wird ein Visual Studio 2008 auf Windows XP SP2 eingesetzt. Die Web-Application läuft auf dem IIS 5.1 (nicht dem eingebauten WebDev-Server).
Vielleicht kann hier jemand helfen.
Vielen Dank im Voraus, sigmundj
Antworten
-
Hallo sigmundj,
Bitte schau Dir mal an den folgenden Diskussionsfaden:http://forums.asp.net/t/1123505.aspx
Wie Sie Cachieren in ASP.NET mithilfe von Visual c# .NET:
http://msdn.microsoft.com/en-us/kb/kb00323290.aspx
Grüße,Robert
- Bearbeitet Robert BreitenhoferModerator Freitag, 31. Juli 2009 07:49 Link hinzugefügt
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 6. August 2009 14:47
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 19. August 2009 16:08
Alle Antworten
-
Hallo sigmundj,
Bitte schau Dir mal an den folgenden Diskussionsfaden:http://forums.asp.net/t/1123505.aspx
Wie Sie Cachieren in ASP.NET mithilfe von Visual c# .NET:
http://msdn.microsoft.com/en-us/kb/kb00323290.aspx
Grüße,Robert
- Bearbeitet Robert BreitenhoferModerator Freitag, 31. Juli 2009 07:49 Link hinzugefügt
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 6. August 2009 14:47
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 19. August 2009 16:08