INFO: Contoh aplikasi, aplikasi peristiwa, dan aplikasi negara di ASP.NET

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

Pada Halaman ini

RINGKASAN

ASP.NET HttpApplication objek menyembunyikan banyak konsep-konsep kompleks untuk menyederhanakan pemrograman model. Artikel ini menjelaskan beberapa kompleksitas ini. Selain itu, ini Artikel menjelaskan bagaimana ASP.NET menangani masalah kompatibilitas dengan klasik Microsoft Active Server Pages (ASP) Aplikasi objek.

Artikel ini dibagi menjadi berikut bagian:

INFORMASI LEBIH LANJUT

Kelas aplikasi dan contoh aplikasi

Kelas aplikasi didefinisikan dalam berkas Global.asax. Kode dalam Global.asax mendefinisikan sebuah kelas baru yang berasal dari System.web.HttpApplication. Dalam ketiadaan file Global.asax, kelas dasar, HttpApplication, digunakan sebagai kelas aplikasi.

ASP.NET runtime menciptakan banyak contoh kelas aplikasi yang diperlukan untuk memproses permintaan secara bersamaan. Untuk sebagian besar aplikasi, jumlah ini terbatas pada jumlah benang dan berada dalam kisaran 1 hingga 100, tergantung pada perangkat keras, beban server, konfigurasi, dan seterusnya. Banyak permintaan kembali aplikasi contoh, dan daftar gratis contoh aplikasi disimpan selama periode mengurangi beban. Contoh aplikasi yang digunakan dalam cara benang-aman, yaitu satu permintaan sekaligus. Hal ini memiliki implikasi yang penting:
  • Anda tidak perlu khawatir tentang penguncian ketika Anda mengakses anggota non-statis kelas aplikasi.
  • Kode aplikasi dapat menyimpan data permintaan untuk setiap permintaan di anggota non-statis kelas aplikasi (tapi tidak setelah EndRequest acara karena acara ini dapat mempertahankan permintaan untuk waktu yang lama waktu).
Karena anggota statis kelas apapun, termasuk aplikasi kelas, tidak benang-aman, kode pengguna harus menyediakan sesuai penguncian untuk akses ke anggota statis. Hal ini berlaku untuk setiap anggota statis yang ditambahkan ke kelas aplikasi.

Gunakan panduan berikut untuk mengakses contoh aplikasi yang berhubungan dengan permintaan saat ini:
  • Dari Global.asax, menggunakan ini atau Saya objek.
  • Dari halaman, setiap halaman termasuk-bertipe kuat ApplicationInstance properti.
  • Dari HttpContext objek, menggunakan HttpContext.ApplicationInstance properti (yang Anda ketik sebagai HttpApplication).
Catatan Karena Aplikasi mengacu pada kamus status aplikasi global di ASP klasik, ASP.Menggunakan NET ApplicationInstance dan tidak Aplikasi sebagai nama properti untuk merujuk aplikasi contoh yang proses permintaan saat ini.

Aplikasi peristiwa

Seumur hidup permintaan terdiri dari serangkaian aplikasi peristiwa (dan beberapa implisit langkah itu ASP.NET mengimplementasikan). Kejadian-kejadian ini terdaftar di bawah dalam urutan yang dijalankan:
  1. BeginRequest
  2. AuthenticateRequest peristiwa
  3. DefaultAuthentication acara internal
  4. AuthorizeRequest peristiwa
  5. ResolveRequestCache peristiwa
  6. Internal langkah ke "peta handler" (ketika kompilasi mengambil tempat, contoh halaman dibuat)
  7. AcquireRequestState peristiwa
  8. PreRequestHandlerExecute peristiwa
  9. Internal langkah untuk "pengendali" (ketika kode halaman adalah dieksekusi)
  10. PostRequestHandlerExecute peristiwa
  11. ReleaseRequestState peristiwa
  12. Internal langkah penyaring tanggapan UpdateRequestCache peristiwa
  13. UpdateRequestCache peristiwa
  14. EndRequest peristiwa
Catatan Jika Anda menggunakan Server.transfer atau Response.redirect(string), permintaan saat ini secara efektif terganggu dan beberapa peristiwa yang tercantum di atas akan tidak dibangkitkan. Namun, EndRequest acara akan dibesarkan dalam skenario ini.

Item berikut dapat menangani peristiwa-peristiwa ini:
  • Internal ASP.Halaman NET framework (misalnya, langkah 6, 9, dan 12 dalam daftar sebelumnya).
  • HTTP modul yang dikonfigurasi untuk aplikasi. The daftar standar HTTP modul didefinisikan dalam Machine.config elemen dari file.
  • Kode dalam Global.asax yang terhubung melalui Application_ pada EventName metode atau bahwa yang tersambung secara eksplisit ketika Anda menambahkan event handlers untuk nama alternatif handler.
Setiap peristiwa dapat memiliki pelanggan sinkron dan asynchronous. Pelanggan asynchronous dijalankan pertama kali. Tidak semua peristiwa yang selalu dilaksanakan; satu-satunya peristiwa yang selalu dilaksanakan adalah EndRequest. Sebagai hasilnya, melakukan semua after-request pembersihan di EndRequest acara.

Catatan Dalam kebanyakan kasus, respon sebenarnya dikirim ke klien setelah contoh aplikasi selesai dengan respon (yang setelah EndRequest).

Application_OnStart dan Application_OnEnd

ASP.NET memperkenalkan yang unik Application_OnStart dan Application_OnEnd "peristiwa" untuk kompatibilitas dengan ASP klasik. Ini "peristiwa" dijalankan hanya sekali dalam seumur hidup sebuah aplikasi dan tidak untuk setiap contoh aplikasi. Oleh karena itu, jika Anda mengubah anggota non-statis di ini metode, Anda mempengaruhi aplikasi hanya satu contoh dan tidak semua contoh. Anda dapat menginisialisasi satu contoh aplikasi dalam konstruktor atau oleh override Init metode.

Application_OnStart adalah logis setara ke konstruktor kelas untuk kelas aplikasi, tetapi menawarkan salah satu keuntungan: kode memiliki akses ke HttpContext untuk permintaan pertama ke aplikasi.

Aplikasi negara

Aplikasi negara adalah sebuah kamus global objek akhir-terikat, ASP klasik yang memperkenalkan untuk mengkompensasi ketiadaan variabel global di Microsoft Visual Basic Script Edition (VBScript). Di ASP.NET, Anda dapat akses aplikasi negara melalui salah satu dari berikut:
  • Aplikasi properti (yang didefinisikan di kedua HttpApplication dan Halaman kelas)
  • HttpContext.Application
ASP.NET termasuk aplikasi negara terutama untuk kompatibilitas dengan ASP klasik sehingga lebih mudah untuk bermigrasi ada aplikasi untuk ASP.NET. Dianjurkan bahwa Anda menyimpan data dalam anggota statis aplikasi kelas bukan dalam Aplikasi objek. Hal ini meningkatkan kinerja karena Anda dapat mengakses variabel statis lebih cepat daripada Anda dapat mengakses item dalam aplikasi kamus.

Untuk mengakses aplikasi statis anggota dari halaman dalam Microsoft Visual C#.NET dan Microsoft Visual Basic.NET, Anda harus menggunakan ClassName atribut di Global.asax untuk nama kelas aplikasi Anda. Untuk contoh:
<%@ Application Language="C# | VB" ClassName="MyClass" %>
				
Jika anggota statis bernama MyStaticMember dalam file Global.asax Anda, Anda dapat menggunakan MyClass.MyStaticMember akses dari halaman Anda.

Properti

ID Artikel: 312607 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Kata kunci: 
kbappdev kbhttpruntime kbinfo kbstate kbmt KB312607 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:312607

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