Verteilter Cache für ASP.NET-Ausgabecaching
NCache Bietet eine extrem schnelle und zuverlässige Ausgabe-Caching-Funktion für ASP.NET-Anwendungen, die in der Webfarmumgebung ausgeführt werden.
Note
Diese Funktion ist auch in verfügbar NCache Professional.
Das Output-Caching-System von ASP.NET speichert die verschiedenen Versionen des Seiteninhalts abhängig von verschiedenen Parametern wie Abfragezeichenfolgenparametern und Browsertyp zwischen. In ASP.NET 4.0 wurde ein Erweiterungspunkt hinzugefügt, der Entwicklern hilft, jedes andere Caching-System ihrer Wahl außer dem ASP.NET-Cache zu verwenden. NCacheDer Ausgabe-Cache-Anbieter von ist abgeleitet von System.Client.Output
CacheProvider
um von der Erweiterbarkeit des ASP.NET 4.0-Ausgabecachings zu profitieren.
Da die Anwendungen auf Unternehmensebene typischerweise in Webfarmen mit mehreren Servern gehostet werden, bietet InProc Output Caching im Vergleich zu einem verteilten OutProc-Cache keine großen Vorteile. Mithilfe dieser Erweiterbarkeitsfunktion von ASP.NET 4.0 NCache verfügt jetzt über einen eigenen ASP.NET Output Caching-Anbieter.
In der Natur verbreitet: NCache Der Ausgabe-Cache-Anbieter ist OutProc und ist von Natur aus verteilt.
Verfügbarkeit: Die richtigen NCacheMit dem Ausgabecache-Anbieter von können die Inhalte verschiedener ASP.NET-Seiten auf mehreren Servern zwischengespeichert werden, anstatt sie in jedem der ASP.NET-Arbeitsprozesse separat zwischenzuspeichern. Dadurch kann jeder Server in einer Webfarm einen einzelnen verteilten Cache gemeinsam nutzen.
Zuverlässigkeit und Fehlertoleranz: Im Gegensatz zum Ausgabecache von ASP.NET werden Inhalte zwischengespeichert NCacheDer Ausgabecache-Anbieter geht nicht verloren, wenn ein Arbeitsprozess abstürzt oder der IIS-Anwendungspool recycelt wird.
Skalierbarkeit: NCache Der Ausgabe-Cache-Anbieter ist nicht auf den auf jedem Server verfügbaren Speicher beschränkt, da der Cache-Cluster dynamisch wachsen kann.
Ausgabecache mit benutzerdefinierten Hooks: NCache Der Ausgabe-Cache-Anbieter bietet zusätzliche Kontrolle, indem er es den Benutzern ermöglicht, ihren benutzerdefinierten Code einzubinden, um die Attribute des Cache-Elements zu ändern, bevor es zwischengespeichert wird. Da das ASP.NET-Ausgabecaching-System keinen Standardmechanismus zum Angeben von Cache-Abhängigkeiten bietet, können diese Hooks verwendet werden, um zwischengespeicherte Elemente mit den Abhängigkeitsinformationen hinzuzufügen. Diese Abhängigkeiten können Schlüssel-, Datei- oder Datenbankabhängigkeiten sein.
Wie in den meisten Unternehmensanwendungen hängt die Ausgabe einer Seite oder eines Steuerelements normalerweise von einigen Daten in der Datenbank ab. In solchen Anwendungen möchte der Benutzer die Ausgabe einer Seite oder eines Steuerelements zwischengespeichert halten, bis die Daten in der Datenbank geändert werden, von der der Inhalt dieser Seite abhängt. Ebenso möchte der Benutzer möglicherweise die Ablaufzeit für bestimmte Seiten zur Laufzeit ändern und so die in den Konfigurationseinstellungen angegebene Standardablaufzeit überschreiben. All dies kann erreicht werden, indem ein benutzerdefinierter Hook geschrieben wird, indem der implementiert wird IOutPutCacheHook
Schnittstelle. Diese Hooks können implementiert, konfiguriert und bereitgestellt werden, ohne dass Änderungen am Code der Anwendung vorgenommen werden müssen. Für die Konfiguration und Bereitstellung müssen lediglich die Anwendungen geändert werden Web.config Datei.
- Keine Änderung des Anwendungscodes: Diese Hooks können implementiert, konfiguriert und bereitgestellt werden, ohne dass Änderungen am Code der Anwendung vorgenommen werden müssen. Für die Konfiguration und Bereitstellung müssen lediglich die Anwendungen geändert werden Web.config Datei.
In diesem Abschnitt
Übersicht über den ASP.NET-Ausgabecacheanbieter
Erklärt, wie der ASP.NET-Ausgabecache konfiguriert wird NCache um weitere Anwendungsbeispiele zu finden.
ASP.NET-Ausgabecache mit benutzerdefinierten Hooks
Erklärt, wie Sie den ASP.NET-Ausgabecache mit benutzerdefinierten Hooks in Ihren Anwendungen verwenden.