Freigeben über


Gewusst wie: Zwischenspeichern von Seitenausgaben mit Cacheschlüsselabhängigkeiten

Aktualisiert: November 2007

Gelegentlich möchten Sie möglicherweise eine Seite aus dem Ausgabecache entfernen, wenn ein anderes Element aus dem Cache entfernt wird. So könnte beispielsweise eine Seite einen verarbeitungsintensiven Bericht enthalten, der von mehreren Seiten verwendet und daher im Anwendungscache vorgehalten wird. Wenn der Bericht geändert oder aus dem Cache entfernt wird, soll auch die Seitenausgabe aus dem Cache entfernt werden, da der Bericht nicht mehr gültig ist. Um dieses Verhalten zu erreichen, können Sie die zwischengespeicherte Seitenausgabe von anderen zwischengespeicherten Elementen abhängig machen.

Hinweis:

Sie können jede Seite explizit aus dem Ausgabecache entfernen, indem Sie die RemoveOutputCacheItem-Methode aufrufen. Den Anforderungen der jeweiligen Anwendung entsprechend kann dies in der Datei Global.asax, in einem benutzerdefinierten ASP.NET-Serversteuerelement oder in einer Seite erfolgen.

So stellen Sie eine Abhängigkeit zwischen der Seitenausgabe im Cache und einem anderen Element im Cache her

  1. Geben Sie die Cacheeinstellungen in einer Seite entweder deklarativ oder programmgesteuert an. Weitere Informationen finden Sie unter Gewusst wie: Festlegen von Ablaufzeitpunkten für das Zwischenspeichern von ASP.NET-Seiten, Festlegen der Cachefähigkeit einer Seite und Zwischenspeichern mehrerer Versionen einer Seite.

  2. Rufen Sie im Seitencode die AddCacheItemDependency-Methode auf. Übergeben Sie als cacheKey-Parameter den Namen des Cacheelements, mit dem eine Abhängigkeit erstellt werden soll.

    Das folgende Codebeispiel zeigt, wie eine Abhängigkeit von dem Element mit dem Namen ProcessIntensiveReport festgelegt wird. Beim Ändern oder Entfernen dieses Elements wird die Seitenausgabe aus dem Cache entfernt.

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.AddCacheItemDependency("ProcessIntensiveReport");
    
        // Set additional properties to enable caching.
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
        Response.Cache.SetCacheability(HttpCacheability.Public);
        Response.Cache.SetValidUntilExpires(true);
    }
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.AddCacheItemDependency("ProcessIntensiveReport")
    
        ' Set additional properties to enable caching.
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
        Response.Cache.SetCacheability(HttpCacheability.Public)
        Response.Cache.SetValidUntilExpires(True)
    End Sub
    
    Hinweis:

    Sie können die AddCacheItemDependency-Methode nicht in einem ASP.NET-Benutzersteuerelement aufrufen. Sie können jedoch in jedem Benutzersteuerelement, in dem die @ OutputCache-Direktive angegeben wurde, ein CacheDependency-Objekt erstellen, das die Cacheschlüsselabhängigkeiten beschreibt. Anschließend kann dieses Objekt der Dependency-Eigenschaft des UserControl-Objekts zugewiesen werden.

Siehe auch

Aufgaben

Gewusst wie: Programmgesteuertes Festlegen der Cachefähigkeit einer Seite

Konzepte

Zwischenspeichern von ASP.NET-Seiten

Festlegen der Cachefähigkeit einer Seite