Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

INFO: Aplikasi contoh, peristiwa aplikasi dan status aplikasi ASP.net

PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.

Klik disini untuk melihat versi Inggris dari artikel ini: 312607
Ringkasan
Objek ASP.NET HttpApplication menyembunyikan banyak konsep kompleks untuk menyederhanakan model pemrograman. Artikel ini menjelaskan beberapa kerumitan ini. Selain itu, artikel ini menjelaskan cara ASP.NET menangani masalah kompatibilitas mundur dengan objek Microsoft Active Server Pages (ASP) aplikasi klasik.

Artikel ini dibagi menjadi bagian berikut ini:
Informasi lebih lanjut

Kelas aplikasi dan aplikasi contoh

Kelas aplikasi yang ditetapkan di berkas Global.asax. Kode di Global.asax mendefinisikan kelas baru yang Diperoleh dari System.Web.HttpApplication. Tidak adanya Global.asax file, kelas dasar, HttpApplication, digunakan sebagai kelas aplikasi.

ASP.NET runtime membuat banyak contoh kelas aplikasi yang diperlukan untuk memproses permintaan secara bersamaan. Untuk sebagian besar aplikasi, angka ini terbatas untuk jumlah untaian dan tetap berada dalam kisaran 1 hingga 100, tergantung pada peranti penangkap keras, beban server, konfigurasi, dan sebagainya. Banyak permintaan kembali aplikasi contoh, dan daftar gratis aplikasi contoh disimpan selama periode beban rendah. Aplikasi contoh yang digunakan secara aman thread, yaitu, satu permintaan bersamaan. Ini akan berdampak penting:
  • Anda tidak perlu khawatir tentang penguncian ketika Anda accessnon-statis anggota kelas aplikasi.
  • Kode aplikasi dapat menyimpan data permintaan untuk setiap permintaan innon statis anggota kelas aplikasi (namun tidak kejadian setelahnya EndRequest karena kejadian ini akan mempertahankan permintaan lama).
Karena statis anggota kelas apa pun, termasuk kelas aplikasi tidak aman thread, kode pengguna harus memberikan penguncian sesuai untuk mengakses anggota statis. Hal ini berlaku untuk setiap anggota statis yang Anda tambahkan ke kelas aplikasi.

Menggunakan panduan berikut ini untuk mengakses aplikasi contoh yang berhubungan dengan permintaan saat ini:
  • Dari Global.asax, gunakan ini atau objek saya .
  • Dari halaman, setiap halaman termasuk properti ApplicationInstance sangat diketik.
  • Dari objek HttpContext , menggunakan properti HttpContext.ApplicationInstance (yang Anda ketik sebagai HttpApplication).
Catatan Karena aplikasi merujuk ke aplikasi global status kamus di klasik ASP, ASP.NET menggunakan ApplicationInstance dan bukan aplikasi sebagai nama properti merujuk ke aplikasi contoh yang memproses permintaan saat ini.

Peristiwa aplikasi

Pemakaian permintaan terdiri dari serangkaian peristiwa aplikasi (dan beberapa langkah implisit yang menerapkan ASP.NET). Peristiwa ini tercantum di bawah ini dalam urutan menurun yang mereka dijalankan:
  1. BeginRequest
  2. AuthenticateRequest peristiwa
  3. DefaultAuthentication internal peristiwa
  4. Peristiwa AuthorizeRequest
  5. ResolveRequestCache kejadian
  6. Langkah internal "peta handler" (ketika takesplace kompilasi, contoh halaman dibuat)
  7. AcquireRequestState kejadian
  8. PreRequestHandlerExecute kejadian
  9. Internal langkah "mengeksekusi handler" (saat halaman kode isexecuted)
  10. PostRequestHandlerExecute kejadian
  11. ReleaseRequestState kejadian
  12. Langkah internal filter respons UpdateRequestCache kejadian
  13. UpdateRequestCache kejadian
  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 tidak akan dinaikkan. Namun, peristiwa EndRequest akan dinaikkan dalam skenario ini.

Item berikut ini dapat menangani peristiwa berikut ini:
  • Internal ASP.NET halaman framework (misalnya, langkah 6, 9 dan 12 dalam daftar sebelumnya).
  • Modul HTTP yang dikonfigurasi untuk aplikasi. Daftar Thedefault modul HTTP ditetapkan di berkas Machine.config.
  • Kode Global.asax yang tersambung melalui metode Application_ pada EventName atau yang tersambung secara eksplisit saat Anda menambahkan peristiwa handlersfor nama handler alternatif.
Masing-masing peristiwa dapat memiliki sinkron dan asinkron pelanggan. Pelanggan asinkron dijalankan pertama kali. Tidak semua kejadian selalu dijalankan; hanya peristiwa yang selalu dijalankan adalah EndRequest. Akibatnya, melakukan pembersihan permintaan setelah semua kejadian EndRequest .

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

Application_OnStart dan Application_OnEnd

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

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

Status aplikasi

Status aplikasi adalah Kamus global akhir-terikat objek yang klasik ASP memperkenalkan untuk ketiadaan variabel global di Microsoft Visual Basic Scripting Edition (VBScript). Pada ASP.NET, Anda dapat mengakses aplikasi negara melalui salah satu dari berikut ini:
  • Properti aplikasi (yang ditetapkan di halaman dan HttpApplication kelas)
  • HttpContext.Application
ASP.NET meliputi status aplikasi terutama untuk kompatibilitas mundur dengan ASP klasik sehingga lebih mudah untuk migrasi aplikasi yang telah ada untuk ASP.NET. Disarankan untuk menyimpan data statis anggota kelas aplikasi bukan objek aplikasi . Hal ini meningkatkan kinerja karena Anda dapat mengakses sebuah variabel statis lebih cepat daripada Anda dapat mengakses item dalam kamus aplikasi.

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

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 312607 - Tinjauan Terakhir: 03/01/2015 09:29:00 - Revisi: 3.0

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbappdev kbhttpruntime kbinfo kbstate kbmt KB312607 KbMtid
Tanggapan