Einstellen optimaler HTTP-Caching-Header und Serverparameter in ASP.Net MVC und IIS 7.5

Ich habe eine ASP.Net-Site (zufällig MVC, aber das ist hier nicht relevant) mit ein paar Seiten, die ich gerne wirklich gut zwischengespeichert hätte.

peziell möchte ich erreichen:

output 2 Stunden lang auf dem Server zwischengespeichert.wenn sich der Dateiinhalt auf dem Server ändert, sollte der Ausgabecache für diese Seite geleert werden 10 Minuten im Browser zwischengespeichert (d. h. nicht einmal den Server fragen, ob er so frisch ist)wenn der Browser tatsächlich eine nachfolgende Anfrage stellt, möchte ich, dass er etags verwendet, damit der Server einen 304 zurückgibt, wenn er nicht geändert wird.

(Hinweis - Die oben angegebenen Zeitwerte sind nur Beispiele)

1) und 2) kann ich durch Response.Cache.SetCacheability (HttpCacheability.Server) erreichenIch weiß, 3) kann durch Verwendung von Max-Age und Cache-Kontrolle erreicht werden: privateIch kann etags mit Response.Cache.SetETagFromFileDependencies () ausgeben;

Aber ich kann nicht scheinen, @ zu bekommall dieser Dinge zusammenarbeiten. Folgendes habe ich:

    Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
        Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        Response.Cache.SetETagFromFileDependencies();
        Response.Cache.SetValidUntilExpires(true);
        Response.Cache.SetMaxAge(TimeSpan.FromSeconds(60 * 10));

Ist das von mir gewünschte Szenario möglich? Im Speziellen

can Browser machen sowohl 3) als auch 4) so? Wenn Firefox eine neue Anforderung ausgibt, nachdem sie im lokalen Cache abgelaufen ist, sendet er zwar das E-Tag, mit dem der Server zuvor geantwortet hat, aber ich erhalte eine Antwort von 200. Setzen Sie die Variablen wie oben, wo würde ich die Dauer des Ausgabe-Cachings einstellen?

Vielen Dank für alle Tipps!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage