CARA: Menerapkan berbasis kunci dependensi untuk Data Caching di ASP.NET dengan menggunakan Visual C#.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 308147 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan bagaimana menerapkan data caching oleh menggunakan kunci berbasis dependensi di Microsoft ASP.NET aplikasi. Contoh yang disajikan dalam artikel membuat dan menyisipkan DataSet objek ke cache dengan ketergantungan yang ditetapkan pada lain cache Catatan item oleh referensi key nya. Untuk contoh data cache dengan waktu atau berkas dependensi, merujuk pada bagian "Referensi" dalam hal ini artikel.

Persyaratan

  • Microsoft Windows 2000 atau Microsoft Windows XP
  • Microsoft Internet Information Server (IIS)
  • Microsoft.NET Framework
  • Microsoft SQL Server

Menciptakan situs web ASP.Aplikasi NET Web

Menggunakan Microsoft Visual C#.NET untuk membuat Microsoft ASP.NET Web aplikasi bernama DataCacher:
  1. Buka Microsoft Visual Studio.NET.
  2. Pada Berkas menu, titik Baru, lalu klik Project.
  3. Dalam Proyek baru kotak dialog, klik Visual C# proyek di bawah Jenis proyek, lalu klik ASP.Aplikasi NET Web di bawah Pola acu.
  4. Dalam Lokasi kotak, jenis DataCacher sebagai nama proyek dengan mengganti default WebApplication # nama di URL jalur. Jika Anda menggunakan server lokal, Anda dapat meninggalkan nama server sebagai http://localhost, yang menetapkan lokasi untuk http://localhost/DataCacher.

Membangun formulir Web

CATATAN: Kode yang termasuk dalam bagian ini dijelaskan di lebih detail di bagian "Menjalankan kode".

Membangun data cache contoh:
  1. Tambahkan formulir Web baru yang bernama DataCacheSample.aspx untuk Anda proyek dalam Visual Studio.NET:
    1. Klik kanan node proyek dalam larutan Explorer.
    2. Klik Tambahkan, lalu klik Menambahkan baru WebForm.
    3. Nama DataCacheSample.aspx formulir Web.
    4. Klik Terbuka.
  2. Pada Desain Lihat tab untuk formulir Web dalam Visual Studio.NET IDE (integrated development environment), menambahkan tombol formulir Web ke halaman:
    1. Gunakan operasi seret-dan-jatuhkan untuk memindahkan tombol formulir Web ke halaman.
    2. Klik untuk memilih tombol baru. Perubahan ID properti untuk CreateNewOrCached, dan kemudian mengubah Teks properti untuk Membuat baru atau cache.
  3. Tambahkan tombol formulir Web kedua:
    1. Gunakan operasi seret-dan-jatuhkan untuk memindahkan bentuk Web lain tombol ke halaman dari toolbox.
    2. Klik untuk memilih tombol baru. Perubahan ID properti untuk Hapus, dan kemudian mengubah Teks properti untuk Hapus.
  4. Menambahkan label formulir Web:
    1. Gunakan operasi seret-dan-jatuhkan untuk memindahkan label formulir Web ke halaman dari toolbox.
    2. Klik untuk memilih label baru. Perubahan ID properti untuk CacheStatus, dan kemudian jelas Teks properti.
  5. Gunakan operasi seret-dan-jatuhkan untuk memindahkan formulir Web DataGrid kontrol ke halaman dari toolbox. Untuk kontrol ini, meninggalkan ID properti diatur untuk pengaturan default DataGrid1 dalam jendela properti.

Menambahkan kode

Menambahkan kode untuk memasukkan cache item, untuk menghapus cache item, dan untuk membangun ketergantungan cache:
  1. Klik kanan halaman .aspx, dan kemudian klik Lihat kode untuk membuka halaman kode di belakang.
  2. Untuk sampel ini, pastikan bahwa System.data.SqlClient, the System.data, dan System.web.caching namespaces ditambahkan ke namespace daftar dalam kode di belakang Halaman. Jika Anda menggunakan Visual Studio. NET untuk membuat formulir Web, ruang nama Anda Daftar di halaman belakang kode akan terlihat mirip dengan berikut ini:
    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;
    						
    CATATAN: Anda akan menerima peringatan jika namespace baik tidak terdaftar, atau jika ada daftar berlebihan namespace.
  3. Pada Desain melihat tab, klik dua kali CreateNewOrCached tombol untuk membuka CreateNewOrCached_Click acara di halaman kode di belakang.
  4. Tambahkan kode berikut untuk CreateNewOrCached_Click acara:
    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();
    }
    						
    CATATAN: Anda mungkin perlu untuk memodifikasi ConnectionString dalam kode dalam langkah ini untuk bekerja dengan benar dengan SQL server. Untuk kode untuk bekerja dengan baik, Anda perlu memiliki SQL Server Pub database yang terinstal.
  5. Pada Desain melihat tab untuk DataCacheSample.aspx halaman, klik dua kali Hapus tombol untuk membuka Remove_Click acara di halaman kode di belakang.
  6. Tambahkan kode berikut untuk Remove_Click acara:
    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. Menambahkan elemen berikut ke file Web.config antara <system.web> and </system.web>:
    <identity impersonate=?true? />
    
  8. Pada Berkas menu, klik Simpan semua untuk menyimpan formulir Web dan proyek terkait lainnya file.
  9. Pada Bangun menu dalam Visual Studio.NET IDE, klik Bangun untuk membangun proyek.

Menjalankan kode

  1. Untuk menjalankan kode, klik kanan halaman DataCacheSample.aspx Solusi Explorer, dan kemudian klik Tampilkan di Browser.
  2. Klik CreateNewOrCached tombol; The CacheStatus label harus menampilkan "Baru versi dibuat" dan DataGrid kontrol ini dihuni.

    CATATAN:
    • The Versi baru dibuat pengaturan untuk CacheStatus label adalah hasil kunci cache CacheDataSetEmployees itu adalah tidak belum referensi item cache yang benar ketika memasuki acara. Dalam kasus ini, DataSet dibuat, DataGrid kontrol terikat DataSet, dan DataSet dimasukkan ke dalam cache dengan menggunakan tombol cache "CacheDataSetEmployees".
    • Dari langkah sebelumnya Anda harus juga menyadari penciptaan baru CacheDependency objek yang bernama MyDependency. The MyDependency obyek terdaftar sebagai dependensi untuk CacheDataSetEmployees item ketika ditambahkan ke cache dengan menggunakan Masukkan metode. Penting untuk dicatat bahwa, sambil sampel ini menunjukkan berbasis kunci dependensi, Anda dapat menggunakan jenis dependen caching kriteria, seperti file atau sebuah time stamp, sebagai baik.
  3. Klik CreateNewOrCached tombol lagi. The CacheStatus label menampilkan "Cache versi", yang menyatakan bahwa cache DataSet digunakan. Anda dapat memverifikasi bahwa ini adalah data cache dengan memodifikasi salah satu Catatan ditampilkan dalam Pub database dengan menggunakan SQL Query Analyzer atau alat lain. Setelah Anda memodifikasi catatan, klik CreateNewOrCached tombol lagi. Perhatikan bahwa perubahan yang Anda buat tidak ditampilkan. Klik Hapus, lalu klik CreateNewOrCached lagi untuk melihat perubahan yang Anda buat untuk database.
  4. Klik Hapus tombol. The CacheStatus label menampilkan "Cache entri dihapus". Cache item dengan kunci"SqlPubsEmployees" dengan menggunakan Cache.Remove metode di Remove_Click acara. Karena Anda terdaftar array (yang berisi kunci cache nama item dihapus) dengan MyDependency Ketika Anda menciptakan, "CacheDataSetEmployees" item dihapus karena Anda dibuat dengan menggunakan Masukkan metode dan oleh referensi MyDependency sebagai parameter ketergantungan.
  5. Klik CreateNewOrCached tombol lagi. The CacheStatus label menampilkan pesan "Baru versi dibuat" karena DataSet diciptakan didasarkan pada kenyataan bahwa itu tidak lagi ada di cache ketika acara ditembakkan.
  6. Anda mungkin juga menyadari bahwa DataGrid kontrol ditampilkan sebagai diisi dengan data bahkan setelah DataSet item dihapus dari cache. Ini adalah hasil dari EnableViewState properti yang sedang diatur ke Benar secara default. Hal ini memungkinkan negara kontrol harus dipertahankan, dan ini tidak terkait dengan manipulasi catatan cache di kode. Untuk lebih visual keterwakilan kontrol negara pada setiap tahap, Anda dapat mengatur EnableViewState untuk Palsu.
CATATAN: Salam untuk contoh ini, dalam situasi yang sebenarnya, cache kunci array ( kunci array dalam kode contoh) mungkin memegang kunci cache untuk meja lainnya atau lain cache item jadi bahwa jika salah satu dari mereka item untuk mengubah, cache entri)CacheDataSetEmployees dalam contoh ini) untuk item yang dibuat dengan ini ketergantungan akan dihapus dari cache juga. Anda kemudian dapat bertindak sebagai diperlukan dengan menggunakan callback; untuk informasi lebih lanjut tentang callback, merujuk kepada Bagian "Referensi" di artikel ini.

Pemecahan Masalah

  • Nama kunci yang terdaftar dalam cache kunci array harus dikaitkan dengan sebenarnya cache item. Jika mereka tidak, item yang ketergantungan digunakan tidak benar dipertahankan dalam cache. Contoh ini akan jika kunci array dalam kode contoh yang diadakan lain elemen array dan elemen set untuk nama kunci cache tidak sah.
  • Cache kunci array memiliki tidak berarti tertentu sampai digunakan dengan CacheDependency objek.
  • Jika Anda memasukkan item ke cache dengan tidak ada ketergantungan atau lain kadaluarsa, kontrol runtime ketika item dihapus dari cache.

REFERENSI

Untuk informasi lebih lanjut tentang menggunakan CacheItemRemovedCallback mendelegasikan, lihat Website Microsoft berikut:
CacheItemRemovedCallback delegasi
.aspx http://msdn2.Microsoft.com/en-us/library/System.web.caching.cacheitemremovedcallback (vs.71)
CATATAN: CacheItemRemovedCallback delegasi mendefinisikan metode callback untuk memberitahu aplikasi ketika cache item dihapus dari cache.

Untuk informasi lebih lanjut tentang CacheDependency kelas, lihat Website Microsoft berikut:
CacheDependency kelas
.aspx http://msdn2.Microsoft.com/en-us/library/System.web.caching.cachedependency (vs.71)
CATATAN: CacheDependency kelas trek cache dependensi, yang dapat file, direktori, atau tombol untuk objek lain dalam aplikasi Anda cache.

Untuk lebih informasi tentang berbagai pilihan caching yang tersedia untuk ASP.NET, merujuk kepada Microsoft berikut.NET Framework SDK dokumentasi:
Menambahkan item ke Cache
http://MSDN.Microsoft.com/en-us/library/cc511535.aspx
Untuk informasi tambahan tentang caching berbagai pilihan yang tersedia untuk ASP.NET, klik nomor artikel di bawah ini untuk melihat artikel di Microsoft Basis Pengetahuan:
305140 ASP.NET Roadmap
307225 INFO: ASP.BERSIH Caching Overview

Properti

ID Artikel: 308147 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Kata kunci: 
kbcaching kbdatabase kbhowtomaster kbmt KB308147 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:308147

Berikan Masukan

 

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