Come implementare le dipendenze di basati su chiave per la memorizzazione nella cache i dati in ASP.NET tramite Visual Basic .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 312358 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato archiviato. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Utilizzare questa Guida dettagliata per implementare le dipendenze di basati su chiave per la memorizzazione nella cache di dati in un'applicazione ASP.NET.

In questo esempio crea e inserisce un oggetto DataSet in una cache con una dipendenza impostare un altro elemento voce di cache facendo riferimento alla chiave. Per ulteriori informazioni ed esempi di inserimento nella cache di dati con dipendenze basate sul tempo o basato su file, vedere la sezione di REFERENCES in questo articolo.

Back to the top

Requisiti

Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack Ŕ necessario:
  • Microsoft Windows 2000 o Microsoft Windows XP.
  • Microsoft Internet Information Services (IIS).
  • Microsoft .NET framework.
  • Microsoft SQL Server.
Back to the top

Creazione di un'applicazione Web ASP.NET utilizzando Visual Basic .NET

La procedura seguente consente di creare una nuova applicazione di Web ASP.NET denominata DataCacher
  1. Avviare Microsoft Visual Studio .NET.
  2. Scegliere Nuovo dal menu file , quindi progetto .
  3. Nella finestra di dialogo Nuovo progetto in Tipi progetto fare clic su Progetti di Visual Basic . In modelli fare clic su Applicazione Web ASP.NET .
  4. Nella casella percorso sostituire WebApplication # con il nuovo nome di progetto: DataCacher . Se si utilizza il server locale, lasciare il nome di server http://localhost . Casella percorso Ŕ simile a questo:
    http://localhost/DataCacher
Back to the top

Creare il modulo Web

Nota Per ulteriori informazioni, vedere la sezione "Eseguire il codice" pi¨ avanti in questo articolo.
  1. Aggiungere un nuovo WebForm denominato DataCacheSample.aspx al progetto di in Visual Studio. NET. Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Fare clic con il pulsante destro del mouse sul nodo progetto in Esplora soluzioni, scegliere Aggiungi , quindi Aggiungi nuovo Web Form .
    2. Il Web Form di nome DataCacheSample.aspx e quindi fare clic su Apri .
  2. In Visual Studio .NET sviluppo integrato ambiente (IDE, Integrated Development Environment), passare alla visualizzazione struttura.
  3. Aggiungere un pulsante di Web Form alla pagina:
    1. Trascinare un pulsante di Web Form nella pagina.
    2. Selezionare il pulsante di Web Form. Modificare la proprietÓ ID per CreateNewOrCached e modificare la proprietÓ Text per Creare nuovo o cache .
  4. Aggiungere un secondo pulsante Web Form:
    1. Trascinare un altro pulsante Web Form della pagina e posizionarlo dopo il pulsante CreateNewOrCached .
    2. Selezionare il pulsante di Web Form, modificare la proprietÓ ID RemoveEntry e quindi modificare la proprietÓ Text per RemoveEntry .
  5. Aggiungere un'etichetta di Web Form:
    1. Trascinare nella pagina un'etichetta di Web Form dalla casella strumenti .
    2. Selezionare l'etichetta WebForm e modificare la proprietÓ ID CacheStatus e quindi deselezionare la proprietÓ Text .
  6. Aggiungere un controllo DataGrid:
    1. Trascinare un controllo Web Form DataGrid nella pagina. Consente di mantenere la proprietÓ dell'ID predefinita di DataGrid1 .
Back to the top

Aggiungere il codice

Aggiungere codice per inserire voci di cache, per rimuovere gli elementi della cache e per creare la dipendenza della cache:
  1. Clic con il pulsante destro del mouse sulla pagina aspx e quindi scegliere Visualizza codice per visualizzare il codice.
  2. Aggiungere la voce di spazio dei nomi seguenti spazi dei nomi:
    Imports System.Data.SqlClient
    Imports System.Web.Caching
    						
    Nota sia lo spazio dei nomi viene omesso o se si dispone di un elenco di spazi dei nomi ridondante, verrÓ visualizzato un messaggio di avviso.
  3. Passare alla visualizzazione struttura.
  4. Fare doppio clic sul pulsante per visualizzare il codice per l'evento CreateNewOrCached_Click CreateNewOrCached . Aggiungere il codice seguente all'evento CreateNewOrCached_Click .

    Nota Questo codice Ŕ necessario installare il pubs di SQL Server database.
         Private Sub CreateNewOrCached_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CreateNewOrCached.Click
            ' Create a DataSet object from the cache entry with the
            ' CacheDataSetEmployees key.
            Dim CacheDataSetEmployees As Object = CType(Cache.Get("CacheDataSetEmployees"), DataSet)
    
            ' Verify if the object is null.
            If (CacheDataSetEmployees Is Nothing) Then
    
                ' Set a value for the cache entry that serves as the 
                ' key for the dependency.
                Cache("SqlPubsEmployees") = "SomeValue"
    
                ' Create the array of cache key item names.
                Dim keys() As String = {"SqlPubsEmployees"}
    
    
                Dim ds As DataSet = New DataSet()
                ' Create the connection and pass in the ConnectionString.
                Dim MySqlConn As SqlConnection = New SqlConnection("Server=localhost;Database=Pubs;uid=sa;pwd=")
                ' Create the Data Adapter and pass the command text and 
                ' connection to use.
                Dim MySda As SqlDataAdapter = 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 cache 
                ' keys (keys).
                Dim MyDependency As New CacheDependency(Nothing, 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
            End If
    
            ' Bind the DataGrid to the DataSource.
            DataGrid1.DataBind()
    
        End Sub
    						
    Nota modifica ConnectionString nel codice citati in precedenza funzioni correttamente con SQL Server.
  5. Tornare alla visualizzazione struttura in DataCacheSample.aspx la pagina.
  6. Fare doppio clic sul pulsante per visualizzare il codice di evento RemoveEntry_Click RemoveEntry .
  7. Aggiungere il codice riportato di seguito all'evento RemoveEntry_Click :
    Private Sub RemoveEntry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RemoveEntry.Click
            ' 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"
    End Sub
    					
  8. Dal menu file scegliere Salva tutto per salvare il Web Form e altri file di progetto associati.
  9. Generare il progetto: scegliere Genera soluzione dal menu Genera nell'IDE di Visual Studio. NET.
Back to the top

Eseguire il codice

  1. Fare clic con il pulsante destro del mouse sulla pagina DataCacheSample.aspx in Esplora soluzioni e quindi fare clic su Visualizza nel browser .
  2. Fare clic sul pulsante CreateNewOrCached . L'etichetta CacheStatus Visualizza la Nuova versione creata e il controllo DataGrid viene compilato.

    note :
    • L'impostazione della Nuova versione creata per l'etichetta CacheStatus viene visualizzato perchÚ la chiave di cache CacheDataSetEmployees non fa riferimento una voce di cache valido quando si immette l'evento. In questo caso, il DataSet viene creato il controllo DataGrid Ŕ associato il DataSet e il DataSet viene immesso nella cache utilizzando la chiave di cache CacheDataSetEmployees .
    • Viene creato un nuovo oggetto CacheDependency denominato MyDependency . L'oggetto MyDependency Ŕ elencato come la dipendenza per l'articolo CacheDataSetEmployees quando viene aggiunto alla cache utilizzando il metodo di inserimento . In questo esempio viene illustrato basati su chiave dipendenze, Ŕ possibile utilizzare altri tipi di basato sulla dipendenza della cache criteri, ad esempio file o timestamp.
  3. Fare clic sul pulsante CreateNewOrCached nuovamente.

    Mano a mano che verranno visualizzati l'etichetta CacheStatus Cache versione utilizzata . Questo significa che Ŕ stata da utilizzata DataSet memorizzati nella cache. Per verificare che questo sia dati memorizzati nella cache, modificare uno dei record visualizzati nel database pubs utilizzando SQL Query Analyzer o un altro strumento. Dopo aver modificato il record, fare nuovamente clic sul pulsante CreateNewOrCached . Si noti che le modifiche apportate non vengono visualizzate. Fare clic su RemoveEntry e quindi su CreateNewOrCached per visualizzare le modifiche apportate al database.
  4. Fare clic sul pulsante RemoveEntry .

    Mano a mano che verranno visualizzati l'etichetta CacheStatus Cache elemento rimosso . L'elemento della cache con la chiave SqlPubsEmployees viene rimosso dal utilizzando il metodo di Cache.Remove nell'evento RemoveEntry_Click . La matrice contenente il nome di chiave di cache dell'elemento rimosso viene elencata con MyDependency quando viene creato. L'elemento CacheDataSetEmployees verrÓ rimosso perchÚ Ŕ stato creato utilizzando il metodo INSERT e riferimenti MyDependency relativo parametro di dipendenza.
  5. Fare nuovamente clic su CreateNewOrCached .

    Mano a mano che verranno visualizzati l'etichetta CacheStatus Nuova versione creata . Il DataSet viene creato basa sul fatto che non esiste pi¨ nella cache quando viene generato l'evento.

    Si noti inoltre che il controllo di DataGrid viene visualizzato come contiene i dati anche dopo che l'elemento di DataSet viene rimosso dalla cache. Infatti, la proprietÓ EnableViewState Ŕ impostata su true per impostazione predefinita. Questa mantiene lo stato del controllo e non Ŕ correlata la modifica della voce della cache nel codice. Per una rappresentazione visiva dello stato del controllo di ogni fase, Ŕ possibile impostare il EnableViewState su false .
In una situazione reale, la matrice di chiavi della cache (in questo esempio, la matrice di chiavi ) pu˛ tenere le chiavi di cache per altre tabelle o altri elementi di cache. Se uno di tali modifiche di elementi, quindi la voce della cache (in questo esempio CacheDataSetEmployees ) per l'elemento creato con la dipendenza viene rimosso dalla cache. Se Ŕ necessario Ŕ possibile rispondere mediante un callback. Per ulteriori informazioni sul callback, vedere la sezione "Riferimenti" pi¨ avanti in questo articolo.

Back to the top

Risoluzione dei problemi

  • I nomi chiave elencati nella matrice di chiavi della cache devono essere associati con voci di cache effettivo. Se non lo sono, l'elemento per cui viene utilizzata la dipendenza non verrÓ conservata nella cache correttamente--ad esempio, se la matrice di chiavi nel codice di esempio contenga un altro elemento di matrice, e l'elemento Ŕ impostata su un nome di chiave di cache non valido.
  • La matrice di chiavi di cache non ha alcun significato specifico quando esso viene utilizzato con un oggetto CacheDependency .
  • Se si inserisce un elemento nella cache con alcuna dipendenza o altri scadenza, il controllo di runtime determina quando rimuovere l'elemento dalla cache.
Back to the top

Riferimenti

Per informazioni su CacheItemRemovedCallback , visitare il sito di Web di Microsoft:
Delegato CacheItemRemovedCallback
http://msdn2.microsoft.com/en-us/library/system.web.caching.cacheitemremovedcallback(vs.71).aspx
Nota CacheItemRemovedCallback definisce un metodo di callback per notificare le applicazioni quando viene rimosso un elemento memorizzato nella cache dalla cache.

Per informazioni sulla classe CacheDependency , visitare il sito di Web di Microsoft:
Classe CacheDependency
http://msdn2.microsoft.com/en-us/library/system.web.caching.cachedependency(vs.71).aspx
La classe CacheDependency tiene traccia delle dipendenze di cache, ad esempio file, cartelle o chiavi per altri oggetti nella cache dell'applicazione.

Per una breve panoramica delle diverse cache opzioni disponibili per ASP.NET, visitare il sito di Web di Microsoft:
Aggiunta di elementi alla cache
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconaddingitemstocache.asp
Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
305140INFO: Roadmap di ASP.NET
307225Panoramica delle operazioni di memorizzazione nella cache in ASP.NET
Back to the top

ProprietÓ

Identificativo articolo: 312358 - Ultima modifica: lunedý 24 febbraio 2014 - Revisione: 4.5
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
Chiavi:á
kbnosurvey kbarchive kbmt kbcaching kbdatabase kbhowtomaster KB312358 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 312358
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

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