Postupy: Provést Key-Based závislosti pro data mezipaměti ASP.NET pomocí Visual C# .NET

Překlady článku Překlady článku
ID článku: 308147 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek ukazuje, jak implementovat data do mezipaměti pomocí závislostí založené na klíčích v aplikaci Microsoft ASP.NET. Příklad, uvedeny v tomto článku vytvoří a vloží do mezipaměti objekt DataSet s závislost nastavit na jinou položku položka mezipaměti odkazující jeho klíč. Příklady data do mezipaměti s čas nebo závislosti založené na souboru naleznete v části "Odkazy" v tomto článku.

Požadavky

  • Systém Microsoft Windows 2000 nebo Microsoft Windows XP
  • Microsoft Internet Information Server (IIS)
  • Rozhraní Microsoft .NET framework
  • Microsoft SQL Server

Vytvoření aplikace ASP.NET Web

Microsoft Visual C# .NET použít k vytvoření webovém ASP.NET aplikace s názvem DataCacher:
  1. Otevřete Microsoft Visual Studio .NET.
  2. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt.
  3. V dialogovém okně Nový projekt klepněte v části Typy projektuVisual C# projekty a klepněte na Webovou aplikaci ASP.NET v části šablony.
  4. Do pole umístění zadejte jako název projektu DataCacher nahrazením výchozí WebApplication# název v cestu URL. Pokud používáte místní server, můžete ponechat jako http://localhost, které nastaví umístění http://localhost/DataCacher název serveru.

Sestavit webový formulář

Poznámka: kód, který je obsažen v této části je vysvětlena v části "Running the kód" podrobněji.

Vytvoření mezipaměti ukázkových dat:
  1. Přidat nový webový formulář s názvem projektu v aplikaci Visual Studio .NET DataCacheSample.aspx:
    1. Klepněte pravým tlačítkem na uzel projektu v aplikaci Solution Explorer.
    2. Klepněte na tlačítko Přidat a potom klepněte na tlačítko Přidat nový WebForm.
    3. Název webového formuláře DataCacheSample.aspx.
    4. Klepněte na tlačítko Otevřít.
  2. Na kartě Návrh zobrazení pro webový formulář v integrovaného vývojového prostředí Visual Studio .NET (integrované vývojové prostředí) na stránku přidat tlačítko webové formuláře:
    1. Pomocí operace a přetažení přesunete tlačítko webového formuláře na stránku.
    2. Klepnutím vyberte nové tlačítko. Změňte vlastnost IDCreateNewOrCached a potom změňte vlastnost TextVytvořit nový nebo mezipamětí.
  3. Přidání druhé tlačítko webový formulář:
    1. Použití operace a přetažení přesunout jiný webový formulář tlačítko stránku ze sady nástrojů.
    2. Klepnutím vyberte nové tlačítko. Odebrat změnit vlastnost ID a potom změňte vlastnost TextOdebrat.
  4. Přidat popisek webový formulář:
    1. Pomocí operace a přetažení přesunout popisek webový formulář na stránku z panelu nástrojů.
    2. Klepnutím vyberte nový popisek. Změnit vlastnost IDCacheStatus a potom zrušte vlastnost text.
  5. Pomocí operace a přetažení přesunout ovládací prvek DataGrid webový formulář na stránku z panelu nástrojů. Tento ovládací prvek ponechte vlastnost ID nastavit výchozí nastavení DataGrid1 v podokně Vlastnosti.

Přidání kódu

Přidejte kód vložení položky mezipaměti odebrat položky mezipaměti a vytvořit závislost mezipaměti:
  1. Klepněte pravým tlačítkem myši na stránku ASPX a potom klepněte na tlačítko Otevřít stránku pozadí kód Pohledu.
  2. Tato ukázka ujistěte, přidán System.data.SqlClientSystem.data a obory názvů System.Web.Caching do oboru názvů výpis kódem na pozadí stránky. Pokud používáte Visual Studio. NET vytvořit webový formulář oboru názvů výpis v kódu - za stránkou bude vypadat podobná následující:
    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;
    						
    Poznámka: Pokud není uveden obor názvů nebo pokud redundantní výpis existuje obor názvů bude se upozornění.
  3. Na kartě Návrh zobrazení poklepejte na tlačítko CreateNewOrCached otevřít událost CreateNewOrCached_Click kódem na pozadí stránky.
  4. Přidejte následující kód události CreateNewOrCached_Click:
    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();
    }
    						
    Poznámka: pravděpodobně nutné upravit ConnectionString kód v tomto kroku pracovat správně s SQL server. Kód pracovat správně musíte mít nainstalován databáze pubs SQL Server.
  5. Na kartě Návrh zobrazení pro stránku DataCacheSample.aspx poklepejte na tlačítko Odebrat otevřít událost Remove_Click kódem na pozadí stránky.
  6. Přidejte následující kód události Remove_Click:
    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. Soubor web.config mezi <system.web> a </system.web> přidejte následující prvek:
    <identity impersonate=”true” />
    
  8. V nabídce soubor klepněte na příkaz Uložit vše uložit webový formulář a jiných souborů přidružené projektu.
  9. V nabídce Sestavit Visual Studio .NET IDE klepněte na tlačítko Sestavit projekt Sestavit.

Spuštěn kód

  1. Spustit kód DataCacheSample.aspx stránku v aplikaci Solution Explorer pravým tlačítkem myši a potom klepněte na tlačítko Zobrazit v prohlížeči.
  2. Klepněte na tlačítko CreateNewOrCached; měli zobrazit popisek CacheStatus "Vytvořena nová verze" a ovládací prvek DataGrid naplněna.

    Poznámky:
    • Nastavení Vytvořena nová verzeCacheStatus popisek je výsledek klíč mezipaměti CacheDataSetEmployees není dosud odkazuje položka mezipaměti platný při zadávání události. V tomto případě vytvořen DataSet, DataSet je vázán ovládací prvek DataGrid a DataSet je zadán do mezipaměti pomocí klíče mezipaměti "CacheDataSetEmployees".
    • V předchozím kroku, by měl mít také zaznamenali vytváření nový objekt CacheDependency s názvem MyDependency. Objekt MyDependency je uveden jako závislost položky CacheDataSetEmployees při přidání do mezipaměti pomocí metody Vložit. Je důležité si uvědomit, že zatímco Tento příklad znázorňuje závislostí založené na klíč, můžete použít jiné typy založené na závislost mezipaměti kritérií, jako například soubory nebo časové razítko, také.
  3. Klepněte znovu na tlačítko CreateNewOrCached. Zobrazuje popisek CacheStatus "Mezipaměti Version", která uvádí, že byl použit v mezipaměti DataSet. Toto je data v mezipaměti jeden zobrazené záznamy v databázi pubs změnou pomocí nástroje SQL Query Analyzer nebo jiného nástroje můžete ověřit. Po úpravě záznamu klepněte na tlačítko CreateNewOrCached znovu. Poznámka: provedené změny nejsou zobrazeny. Klepněte na tlačítko Odebrat a potom klepněte na tlačítko CreateNewOrCached znovu zobrazíte změny provedené v databázi.
  4. Klepněte na tlačítko Odebrat. Zobrazuje popisek CacheStatus "Odebrána položka mezipaměti". Položka mezipaměti s klíčem "SqlPubsEmployees" odebrán pomocí metody Cache.Remove v Remove_Click událostí. Protože matice (který obsahuje název klíče mezipaměti odebrané položky) s MyDependency uveden, když jste vytvořili, "CacheDataSetEmployees" položku odebrat, protože vytvořené pomocí metody Vložit a odkazující MyDependency jako parametr jeho závislost.
  5. Klepněte znovu na tlačítko CreateNewOrCached. Popisek CacheStatus zobrazí zprávu "Vytvořena nová verze", protože byl vytvořen DataSet based na faktem, jej již existoval v mezipaměti vyvolání události.
  6. Také si můžete všimnout, že ovládací prvek DataGrid zobrazena jako naplněn dat i po zboží DataSet odebrány z mezipaměti. Toto je výsledek vlastnost EnableViewState právě ve výchozím nastavení hodnotu True. To umožňuje stav řízení být udržovány a to nesouvisí manipulace položka mezipaměti v kódu. Pro více vizuální znázornění stavu ovládacího prvku v každé fázi můžete nastavit EnableViewStateFalse.
Poznámka: to zda tento příklad, ve skutečné situaci může matice mezipaměti klíče (klíče matice ukázkový kód) podržte klávesy mezipaměti pro další tabulky nebo jiných mezipaměti položky tak, že pokud jeden z těchto položek byly změnit, položka mezipaměti (CacheDataSetEmployees v tomto vzorku) pro položku, která byla vytvořena s tuto závislost by být odebrány z mezipaměti také. Jste by potom chovají podle potřeby pomocí zpětných volání; pro další informace o zpětná volání, naleznete v části "Odkazy" v tomto článku.

Odstraňování potíží

  • Názvy klíčů, které jsou uvedeny v mezipaměti matice klíče musí být přidruženy k mezipaměti skutečné položky. Pokud nejsou, není zboží, pro které závislost používá správně zachováno v mezipaměti. Pokud pole klíče v ukázkovém kódu uchovávány jiného prvku matice a prvek byla nastavena na název klíče neplatná mezipaměti by tento příklad.
  • Matice mezipaměti klíče nemá žádný význam konkrétní, dokud se používá s objekt CacheDependency.
  • Pokud vložit položku do mezipaměti s žádná závislost nebo jiných platnosti modulu runtime řídí, kdy je položka odebrána z mezipaměti.

Odkazy

Další informace o použití CacheItemRemovedCallback delegovat naleznete na následujícím webu:
Delegát CacheItemRemovedCallback
http://msdn2.microsoft.com/en-us/library/system.web.caching.cacheitemremovedcallback(vs.71).aspx
Poznámka: Tento delegát CacheItemRemovedCallback definuje metodu zpětného volání pro oznamování aplikací při položka mezipaměti je odebrána z mezipaměti.

Další informace o třídě CacheDependency naleznete na následujícím webu:
Třída CacheDependency
http://msdn2.microsoft.com/en-us/library/system.web.caching.cachedependency(vs.71).aspx
Poznámka: Třída CacheDependency sleduje závislosti mezipaměti, které mohou být soubory, adresáře nebo klíče ostatní objekty v mezipaměti vaše aplikace.

Další informace o různých možností ukládání do mezipaměti, které jsou k dispozici pro ASP.NET naleznete v následující dokumentaci Microsoft .NET Framework SDK:
Přidání položky do mezipaměti
http://msdn.microsoft.com/en-us/library/cc511535.aspx
Další informace o různých možností ukládání do mezipaměti, které jsou k dispozici pro ASP.NET klepněte na následující čísla následujících článcích databáze Microsoft Knowledge Base:
305140Přehled ASP.NET
307225INFORMACE: Přehled mezipaměť ASP.NET

Vlastnosti

ID článku: 308147 - Poslední aktualizace: 28. srpna 2007 - Revize: 2.8
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Klíčová slova: 
kbmt kbcaching kbdatabase kbhowtomaster KB308147 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:308147

Dejte nám zpětnou vazbu

 

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