Gewusst wie: Implementieren Schlüssel basierenden Abhängigkeiten für Daten Caching in ASP.NET mit Visual c# .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 308147 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

In diesem Artikel veranschaulicht das Zwischenspeichern von Daten mithilfe von Schlüsseln basierende Abhängigkeiten in eine Microsoft ASP.NET-Anwendung implementieren. Das Beispiel, das in diesem Artikel vorgestellt werden erstellt und fügt ein DataSet -Objekt in den Cache mit einer Abhängigkeit durch Verweisen auf den Schlüssel für ein anderes Element im Cache-Eintrag festgelegt. Beispiele für mit Uhrzeit oder Datei-basierte Abhängigkeiten Zwischenspeichern von Daten finden Sie im Abschnitt "Informationsquellen" in diesem Artikel.

Voraussetzungen

  • Microsoft Windows 2000 oder Microsoft Windows XP
  • Microsoft Internet Information Server (IIS)
  • Microsoft .NET framework
  • Microsoft SQL Server

Erstellen einer ASP.NET-Webanwendung

Microsoft Visual c# .NET verwenden, um eine Microsoft ASP.NET-Web zu erstellen-Anwendung namens DataCacher:
  1. Öffnen Sie "Microsoft Visual Studio .NET".
  2. Zeigen im Menü Datei auf neu , und klicken Sie dann auf Projekt .
  3. Klicken Sie im Dialogfeld Neues Projekt klicken Sie unter Projekttypen auf Visual C#-Projekte , und klicken Sie dann unter Vorlagen auf ASP.NET-Webanwendung .
  4. Geben Sie im Feld Ort DataCacher als ein Projekt durch Ersetzen der Standardname WebApplication# im URL-Pfad. Wenn Sie den lokalen Server verwenden, können Sie den Servernamen http://localhost, lassen die den Speicherort zu http://localhost/DataCacher festlegt.

Erstellen Sie das Web Form

Hinweis : der Code, der in diesem Abschnitt enthalten ist wird in den Abschnitt "Ausführen des Codes" ausführlich erläutert.

Um die Daten zwischenspeichern Beispiel zu erstellen:
  1. Fügen Sie ein neues Webformular mit dem Namen eines Projekts in Visual Studio .NET DataCacheSample.aspx:
    1. Klicken Sie mit der rechten Maustaste auf den Projektknoten in Solution Explorer.
    2. Klicken Sie auf Hinzufügen , und klicken Sie auf Neue Webformular hinzufügen .
    3. Benennen Sie die Web Forms DataCacheSample.aspx.
    4. Klicken Sie auf Öffnen .
  2. Auf der Registerkarte Entwurf Ansicht für das Web Form in der Visual Studio .NET IDE (integrierte Entwicklungsumgebung), fügen Sie eine Web Forms-Schaltfläche zur Seite hinzu:
    1. Verwenden Sie eine Drag & Drop Operation zum Verschieben einer Web Forms-Schaltfläche auf das Zeichenblatt.
    2. Klicken Sie auf die Schaltfläche neue. Ändern Sie die ID -Eigenschaft in CreateNewOrCached , und ändern Sie dann die Text -Eigenschaft zum Erstellen neuer oder den .
  3. Hinzufügen einer zweiten Web Form-Schaltfläche:
    1. Verwenden Sie eine Drag-and-Drop so verschieben Sie ein anderes Web Form auf der Seite aus der Toolbox die Schaltfläche.
    2. Klicken Sie auf die Schaltfläche neue. Ändern Sie die ID -Eigenschaft zu Entfernen , und ändern Sie die Eigenschaft Text auf Entfernen .
  4. Fügen Sie eine Web Forms-Beschriftung:
    1. Verwenden Sie eine Drag & Drop Operation ein Webformular Bezeichnungsfeld auf das Zeichenblatt verschieben möchten, aus der Toolbox.
    2. Klicken Sie auf die neue Bezeichnung. Ändern Sie die ID -Eigenschaft in CacheStatus , und deaktivieren Sie die Text -Eigenschaft.
  5. Verwenden Sie eine Drag & Drop Operation zum Verschieben eines Web Forms- DataGrid -Steuerelements auf das Zeichenblatt aus der Toolbox. Lassen Sie für dieses Steuerelement die ID -Eigenschaft auf die Standardeinstellung der DataGrid1 im Bereich Eigenschaften festgelegt.

Hinzufügen des Codes

Fügen Sie Code zum Einfügen von Cache-Elementen, um Cacheelemente zu entfernen und die Cacheabhängigkeit erstellen:
  1. Klicken Sie mit der rechten Maustaste auf die ASPX-Seite, und klicken Sie dann auf Code anzeigen , um die Code-Behind-Seite zu öffnen.
  2. Stellen Sie für dieses Beispiel sicher, dass System.Data.SqlClient , System.Data und die System.Web.Caching -Namespaces auf den Namespace in der Code-Behind-Seite hinzugefügt werden. Wenn Sie Visual Studio verwenden. NET Webformular, Ihrem Namespace aufgelistet, in den Code - behind-Seite erstellen sieht der folgenden ähnelt:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using System.Web.Caching;
    						
    Hinweis : Sie erhalten Warnungen, wenn entweder der Namespace nicht aufgeführt ist, oder wenn eine redundante Liste ein Namespace vorhanden ist.
  3. Doppelklicken Sie auf der Registerkarte Entwurf Ansicht auf die Schaltfläche CreateNewOrCached , CreateNewOrCached_Click -Ereignis in der Code-Behind-Seite zu öffnen.
  4. Fügen Sie das CreateNewOrCached_Click -Ereignis den folgenden Code:
    private void CreateNewOrCached_Click(object sender, System.EventArgs e) {
    	//Attempt to create a DataSet object from the cache entry with the key "CacheDataSetEmployees" 
    	object CacheDataSetEmployees = (DataSet)Cache.Get("CacheDataSetEmployees");
    	
            //Check to see if the object is null
    	if(CacheDataSetEmployees == null)
    	{
    	     //Set a value for the cache entry that will serve as the 
    	     //key for the dependency to be created on
    	     Cache["SqlPubsEmployees"] = "SomeValue";
    
    	     //Create the array of cache key item names
    	     string[] keys = new String[1];
    	     keys[0] = "SqlPubsEmployees";
    				
    	     DataSet ds = new DataSet();
    	     //Create the connection and pass in the ConnectionString
    	    SqlConnection MySqlConn = new SqlConnection("Server=kronicas17;Trusted_Connection=Yes;initial catalog=pubs");
    	     //Create the Data Adapter and pass in the command text and connection to use
    	     SqlDataAdapter MySda = new SqlDataAdapter("SELECT TOP 10 * FROM Employee", MySqlConn);
    	     //Populate the DataTable "Employees" in the DataSet
    	     MySda.Fill(ds,"Employee");
    	     //Set the DataGrid's DataSource to the "Employee" DataTable
    	     DataGrid1.DataSource = ds.Tables["Employee"];
    				
    	     //Create a dependency object referencing the array of cachekeys (keys)
    	     CacheDependency MyDependency = new CacheDependency(null, keys);
    	     //Insert the DataSet into Cache with a dependency on MyDependency
    	     Cache.Insert("CacheDataSetEmployees", ds, MyDependency);
    				MySqlConn.Close();
    				
    	     //Display the status of the DataSet/Cache Entry
    	     CacheStatus.Text = "New Version Created";
    	}
    	else
    	{
    	     //Display the status of the DataSet/Cache Entry
    	     CacheStatus.Text = "Cached Version Used";
    	     //Set the DataSource to the cached version of the DataSet
    	     DataGrid1.DataSource = CacheDataSetEmployees;
            }
            //Bind the DataGrid to the DataSource
    	DataGrid1.DataBind();
    }
    						
    Hinweis : Möglicherweise müssen Sie in den Code in dieser Schritt bei den SQL Server einwandfrei ConnectionString ändern. Der Code ordnungsgemäß funktioniert müssen Sie die SQL Server Pubs -Datenbank installiert haben.
  5. Doppelklicken Sie auf der Seite DataCacheSample.aspx Registerkarte Ansicht Entwurf auf die Schaltfläche Entfernen , das Remove_Click -Ereignis in der Code-Behind-Seite zu öffnen.
  6. Fügen Sie das Remove_Click -Ereignis den folgenden Code:
    private void Remove_Click(object sender, System.EventArgs e)
         {
    	//Remove the cache item listed in the cachekeys array (keys)
    	Cache.Remove("SqlPubsEmployees"); 	//Display the status of the cache item
    	CacheStatus.Text = "Cache Item Removed";
         }
    					
  7. Fügen Sie der Datei Web.config zwischen <system.web> und </system.web> das folgende Element hinzu:
    <identity impersonate=?true? />
    
  8. Klicken Sie im Menü Datei auf Alles speichern , um das Webformular und andere zugehörige Projektdateien zu speichern.
  9. Klicken Sie in der IDE von Visual Studio .NET Menü Erstellen auf Erstellen , um das Projekt zu erstellen.

Ausführen des Codes

  1. Führen Sie den Code, klicken Sie mit der rechten Maustaste auf die DataCacheSample.aspx-Seite im Projektmappen-Explorer und klicken Sie dann auf in Browser anzeigen .
  2. Klicken Sie auf CreateNewOrCached ; Anzeigen der Bezeichnung CacheStatus sollte "Neue Version erstellt", und das DataGrid -Steuerelement wird aufgefüllt.

    NOTES :
    • Die Neue Version erstellt Einstellung für die Bezeichnung der CacheStatus ist das Ergebnis der Cacheschlüssel CacheDataSetEmployees , die nicht noch ein gültiges Cacheelement verweist Wenn das Ereignis eingeben. In diesem Fall das DataSet wird erstellt, das DataGrid -Steuerelement an das DataSet gebunden ist und das DataSet wird in den Cache mithilfe der Cacheschlüssel "CacheDataSetEmployees" eingegeben.
    • Aus der vorherigen Schritt sollten Sie auch die Erstellung des neuen CacheDependency -Objekts mit dem Namen MyDependency bemerkt haben. Das MyDependency -Objekt wird als Abhängigkeit für das CacheDataSetEmployees -Element aufgeführt, wenn es zum Cache hinzugefügt wird, mithilfe der INSERT -Methode. Es ist wichtig zu beachten, dass während dieses Beispiel Abhängigkeiten Schlüsseln basierende veranschaulicht, andere Arten von Abhängigkeit basierende Zwischenspeichern Kriterien, wie Dateien oder auch einen Zeitstempel verwendet werden können.
  3. Klicken Sie erneut auf die Schaltfläche CreateNewOrCached . Die Bezeichnung CacheStatus zeigt "Zwischengespeicherte Version", die besagt, dass das zwischengespeicherte DataSet verwendet wurde. Sie können überprüfen, dass diese zwischengespeicherten Daten, ist indem einer der angezeigten Datensätze in der Pubs -Datenbank mithilfe von SQL Query Analyzer oder einem anderen Tool ändern. Nachdem Sie den Datensatz geändert haben, klicken Sie erneut auf die Schaltfläche CreateNewOrCached . Beachten Sie, dass die vorgenommenen Änderungen nicht angezeigt werden. Klicken Sie auf Entfernen , und klicken Sie auf CreateNewOrCached erneut, um die Änderungen anzuzeigen, die Sie an der Datenbank vorgenommen haben.
  4. Klicken Sie auf die Schaltfläche Entfernen . Die Bezeichnung CacheStatus zeigt "Cache-Eintrag entfernt". Das Cacheelement mit dem Schlüssel "SqlPubsEmployees" mithilfe der Cache.Remove -Methode in der Remove_Click -Ereignis entfernt wird. Da das Array (mit dem der Cache-Schlüsselname des das entfernte Element) mit MyDependency wird, aufgeführt Wenn Sie es erstellt, wird das Element "CacheDataSetEmployees" entfernt, da Sie es mithilfe der INSERT -Methode und durch Verweisen auf MyDependency als Abhängigkeit Parameter erstellt.
  5. Klicken Sie erneut auf die Schaltfläche CreateNewOrCached . Die Bezeichnung CacheStatus wird die Meldung "Neue Version erstellt" angezeigt, da das DataSet erstellt wurde, auf der Tatsache beruht, dass es nicht mehr im Cache vorhanden, wenn das Ereignis ausgelöst wurde.
  6. Möglicherweise stellen Sie auch fest, dass das DataGrid -Steuerelement angezeigt wird, wie mit Daten aufgefüllt, sogar nachdem das DataSet -Element aus dem Cache entfernt wurde. Dies ist das Ergebnis der EnableViewState -Eigenschaft standardmäßig auf true festgelegt wird. Dies ermöglicht den Zustand des Steuerelements beibehalten werden und dies bezieht sich nicht um die Cache-Eintrag Bearbeitung im Code. Für eine weitere visuelle Darstellung des Zustands des Steuerelements in jeder Phase können Sie EnableViewState auf false festlegen.
Hinweis : bezüglich für dieses Beispiel in einer tatsächlichen Situation kann das Cache Key Array (die Schlüssel im Beispielcode) Cacheschlüssel für andere Tabellen enthalten oder andere Cache Elemente, sodass Wenn eines dieser Elemente ändern, der Cacheeintrag ( CacheDataSetEmployees in diesem Beispiel) für das Element, das mit dieser Abhängigkeit erstellt wurde aus dem Cache sowie entfernt werden würde. Sie konnte dann fungieren bei Bedarf mithilfe von Rückrufen; finden Sie weitere Informationen über Rückrufe, in den Abschnitt "Informationsquellen" in diesem Artikel.

Problembehandlung

  • Die Schlüsselnamen, die in das Cache Schlüssel Array aufgeführt sind müssen tatsächliche Cacheelemente zugeordnet werden. Wenn dies nicht der Fall ist, wird das Element für das die Abhängigkeit verwendet wird nicht ordnungsgemäß im Cache beibehalten. Wenn das Schlüssel -Array im Beispielcode ein anderes Arrayelement enthalten und das Element Sie auf eine ungültige Cache-Schlüsselname legen wurde ist ein Beispiel dafür wäre.
  • Das Cache Schlüssel Array hat keine besondere Bedeutung, bis es mit einem CacheDependency -Objekt verwendet wird.
  • Wenn Sie ein Element in den Cache mit keine Abhängigkeit oder andere Ablaufdatum einfügen, steuert die Common Language Runtime, wenn das Element aus dem Cache entfernt wird.

Informationsquellen

Weitere Informationen zur Verwendung der CacheItemRemovedCallback delegieren Sie, finden Sie auf der folgenden Website von Microsoft:
CacheItemRemovedCallback-Delegat
http://msdn2.microsoft.com/en-us/library/system.web.caching.cacheitemremovedcallback(vs.71).aspx
Hinweis : der CacheItemRemovedCallback -Delegat definiert eine Rückrufmethode für Anwendungen zu benachrichtigen, wenn ein zwischengespeichertes Element aus dem Cache entfernt wird.

Weitere Informationen über die CacheDependency -Klasse finden Sie unter der folgenden Microsoft-Website:
CacheDependency-Klasse
http://msdn2.microsoft.com/en-us/library/system.web.caching.cachedependency(vs.71).aspx
Hinweis : die CacheDependency -Klasse verfolgt Cacheabhängigkeiten, der Dateien, Verzeichnisse oder Schlüssel für andere Objekte im Cache der Anwendung sein kann.

Weitere Informationen zu den verschiedenen zwischenspeichernden Optionen, die für ASP.NET verfügbar sind, finden Sie in der folgenden Microsoft .NET Framework SDK-Dokumentation:
Hinzufügen von Elementen in den Cache
http://msdn.microsoft.com/en-us/library/cc511535.aspx
Weitere Informationen zu den verschiedenen zwischenspeichernden Optionen, die für ASP.NET verfügbar sind finden Sie in der Microsoft Knowledge Base:
305140Überblick über ASP.NET
307225INFO: Überblick über das Zwischenspeichern in ASP.NET

Eigenschaften

Artikel-ID: 308147 - Geändert am: Dienstag, 28. August 2007 - Version: 2.8
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbmt kbcaching kbdatabase kbhowtomaster KB308147 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 308147
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com