I Ausgabe caching in meinen benutzerdefinierten HTTP-Handler in der folgenden Art und Weise bin mit:Output-Caching in HTTP-Handler und SetValidUntilExpires
public void ProcessRequest(HttpContext context)
{
TimeSpan freshness = new TimeSpan(0, 0, 0, 60);
context.Response.Cache.SetExpires(DateTime.Now.Add(freshness));
context.Response.Cache.SetMaxAge(freshness);
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.Cache.SetValidUntilExpires(true);
...
}
Es funktioniert, aber das Problem ist, dass die Seite mit F5 Auffrischen führt zu Seite Regeneration (statt Cache-Nutzung) trotz der letzten Codezeile:
context.Response.Cache.SetValidUntilExpires(true);
Irgendwelche Vorschläge?
UPD: Scheint als die Ursache des Problems ist, dass HTTP-Handler-Antwort auf Server nicht zwischengespeichert wird. Der folgende Code funktioniert gut für Web-Formular, aber nicht für Handler:
Response.Cache.SetCacheability(HttpCacheability.Server);
Gibt es einige Besonderheiten des Caching der HTTP-Handler Antwort auf dem Server?
Danke für das Finden dieser Lösung, arbeitete für mich mit einwertigen Abfrageparametern. Aber wenn ich einen mehrwertigen Parameter wie "? Id = 1 & id = 2 & id = 3" habe, funktioniert das immer noch nicht. Ich weiß noch nicht warum, wollte aber andere davon wissen lassen. – Oliver