ASP.NET 2.0 juga menyediakan pemantauan aplikasi dan pemantauan kesehatan berfitur lengkap. Sistem ini terdiri dari model kejadian yang sepenuhnya dapat diperluas dan mesin kejadian yang dapat mengirimkan kejadian ke berbagai penerima. Misalnya, Anda dapat mengkonfigurasi aplikasi ASP.NET untuk mengirim email harian yang menunjukkan bahwa server sedang berjalan dan termasuk jumlah memori yang tersedia. Demikian pula, Anda dapat membuat peristiwa kesehatan yang ditautkan ke pengecualian yang tidak tertangani. Konten pengecualian, header permintaan, serta waktu dan tanggal semuanya dapat dikirim ke database pencatatan kesalahan.
ASP.NET 2.0 mencakup peristiwa bawaan, termasuk detak jantung, peristiwa seumur hidup aplikasi (mulai/berhenti/kompilasi), dan peristiwa perangkap kesalahan (pengecualian tidak tertangani). Namun, Anda dapat dengan mudah memanfaatkan kelas dasar ini untuk membuat ulang dan meningkatkan acara Anda sendiri dari aplikasi Anda. Misalnya, Anda dapat membuat peristiwa khusus untuk dicatat ketika pengguna keseratus mengeklik tautan tertentu.
Fitur yang sangat canggih dari sistem pemantauan kesehatan ASP.NET 2.0 adalah dapat dikonfigurasi sepenuhnya melalui file web.config dan machine.config. Dengan menggunakan XML normal, Anda dapat menentukan peristiwa, menentukan penyedia (penerima peristiwa), dan mengirim peristiwa tertentu ke penyedia tertentu.
Membuat Acara Acara memiliki struktur yang mirip dengan pengecualian. Dengan kata lain, kelas event itu sendiri hampir tidak memiliki fungsi kecuali sebagai wadah pesan. Dalam hal pemantauan kesehatan, semua peristiwa diwarisi dari System.Web.Management.WebBaseEvent. Namun, Anda juga bisa berasal dari kelas dasar tingkat tinggi yang digunakan untuk tujuan khusus, seperti mengumpulkan data permintaan HTTP atau menangani pengecualian.
Listing 4. Peristiwa khusus
menggunakan Sistem;
menggunakan System.Web.Management;
CustomEvent kelas publik : WebBaseEvent
{
public const int EventCode = WebEventCodes.WebExendedBase + 10;
MyEvent publik (pesan string, objek eventSource)
: base(pesan, eventSource, EventCode)
{ }
}
Bagian terpenting dalam membuat acara khusus adalah menyediakan Kode Acara yang unik. Semua kode kejadian bawaan ada dalam enumerasi WebEventCodes. Peristiwa khusus harus memiliki nomor yang dimulai dari WebEventCodes.WebExendedBase + 1. Selain itu, satu-satunya tugas umum dalam membuat acara khusus adalah menginisialisasi acara dengan benar.
Menggunakan Peristiwa Meskipun peristiwa bawaan diaktifkan secara otomatis, Anda dapat menambahkan kode ke aplikasi Anda untuk mengaktifkan peristiwa khusus kapan saja.
Listing 5. Mengangkat acara
<script runat="server">
void Page_Load(Pengirim objek, EventArgs e)
{ // Menaikkan acara khusus MyEvent myEvent =
new MyEvent("memuat halaman contoh acara web", ini); myEvent.Raise();
</script>
Saat Anda memunculkan suatu peristiwa dari halaman ASP.NET, Anda cukup membuat instance baru dari peristiwa tersebut dan kemudian menjalankan metode Raise(). Metode Raise() secara otomatis mengirimkan kejadian kejadian ke mesin pemantauan kesehatan. Mesin kemudian memetakan acara tersebut ke profil dan penyedia dan menyerahkan acara tersebut ke penyedia yang tepat. Penyedia pada akhirnya mengirimkan acara tersebut ke penerima yang benar.
Mengonfigurasi Pemantauan Kesehatan Pemantauan kesehatan dikonfigurasikan di area baru di file machine.Config atau Web.Config. Anda dapat mengonfigurasi bagian tersebut untuk mengatur detak jantung web yang secara berkala melaporkan status aplikasi. Anda juga dapat mengonfigurasi aplikasi Anda untuk menghasilkan peristiwa dan meneruskan peristiwa tersebut melalui berbagai penyedia.
Mengonfigurasi peristiwa harus mengidentifikasi setiap peristiwa di area pemetaan peristiwa. Peristiwa diidentifikasi berdasarkan nama unik dan tipe lengkap. Nama acara digunakan sebagai tautan di area aturan.
Listing 6. Area pemetaan peristiwa
<!-- Pemetaan peristiwa menentukan peristiwa yang dipantau -->
<pemetaan acara>
<tambahkan nama="ContohPermintaanWeb"
type="Samples.AspNet.SampleWebRequestEvent, SampleWebRequestEvent,
Versi=0.0.0.0, Budaya=netral, PublicKeyToken=f0c63b9a560d5e5a"/>
</eventMappings>
ASP.NET 2.0 dikirimkan dengan beberapa event bawaan, dikonfigurasi dengan nama berikut:
• Semua event. Semua nama acara menangkap WebBaseEvent apa pun. Kelas peristiwa ini mencakup semua peristiwa yang ditangkap oleh sistem pemantauan kesehatan.
• Detak jantung. Peristiwa detak jantung menggunakan WebHeartBeatEvent untuk memberikan pemberitahuan berkala tentang status aplikasi Web.
• Acara seumur hidup aplikasi. Peristiwa seumur hidup aplikasi mencakup memulai dan menghentikan aplikasi, dan mengkompilasi ulang sebagian atau seluruh aplikasi. Peristiwa ini didasarkan pada WebApplicationLifetimeEvent dan melaporkan tanggal, waktu, dan status saat ini ketika peristiwa seumur hidup terjadi.
• Semua kesalahan. Kategori Semua Kesalahan mengumpulkan anomali atau kesalahan apa pun yang terdeteksi oleh sistem. Peristiwa ini didasarkan pada WebBaseErrorEvent.
• Kesalahan infrastruktur. Gunakan WebErrorEvent untuk menangkap kesalahan yang terkait dengan runtime ASP.NET atau IIS. Peristiwa ini merupakan subkelas dari semua kategori kesalahan dan terutama relevan bagi administrator sistem dibandingkan pengembang aplikasi.
• Permintaan kesalahan pemrosesan. Kesalahan atau pengecualian apa pun yang terjadi selama permintaan memicu WebRequestErrorEvent. Peristiwa ini mencatat permintaan masuk dan kesalahan yang terkait dengan pemrosesan permintaan. Kesalahan pemrosesan permintaan juga merupakan bagian dari semua kategori kesalahan.
• Semua ulasan. Anda dapat menggunakan sistem pemantauan kesehatan untuk menyediakan upaya audit melalui WebAuditEvents. Peristiwa ini secara otomatis mencatat tindakan pengguna aktif dalam aplikasi web. Jika Anda menggunakan peniruan identitas, mengaudit peristiwa akan membantu Anda melacak siapa yang menggunakan aplikasi Anda dan bagaimana aplikasi tersebut digunakan.
• Audit kegagalan. WebFailureAuditEvent adalah jenis peristiwa audit khusus yang dipicu ketika pengguna mencoba masuk ke situs Web Anda dengan nama pengguna atau kata sandi yang tidak valid. Peristiwa ini juga terjadi ketika pengguna tidak dapat diautentikasi untuk sumber daya yang ditentukan.
• Peninjauan berhasil. WebSuccessAuditEvent adalah pasangan dari peristiwa kegagalan yang terjadi setiap kali pengguna mengautentikasi atau melakukan tindakan lain yang memerlukan pencatatan audit.
Acara khusus mudah dibuat, meskipun Anda harus menambahkan kode ke aplikasi Anda untuk meningkatkan acara.
Mengonfigurasi Penyedia Setiap penyedia harus terdaftar dalam file konfigurasi. Mendaftarkan penyedia memerlukan nama dan jenis aplikasi yang unik. Tipe ini berisi nama kuat lengkap dari kelas penyedia sebenarnya. Nama penyedia digunakan sebagai tautan di area aturan.
Daftar 7. Penyedia
<healthMonitoring Enabled="true" heartBeatInterval="0">
<!-- Penyedia menghubungkan acara kesehatan ke berbagai target seperti email WMI atau SMTP -->
<penyedia>
<tambahkan nama="WmiEventProvider" type="System.Web.Management.WebWmiEventProvider,
System.Web,Versi=1.2.3400.0,Budaya=netral, PublicKeyToken=b03f5f7f11d50a3a"/>
</penyedia>
ASP.NET 2.0 hadir dengan penyedia untuk WMI, Windows Event Monitor, email SMTP, dan database SQL Server. Dengan memperluas kelas dasar yang benar, Anda dapat membuat penyedia khusus untuk terhubung ke penerima peristiwa lainnya.
Memetakan kejadian ke penyedia
Langkah terakhir dalam mengonfigurasi pemantauan kesehatan adalah menghubungkan kejadian ke penyedia dengan aturan. Aturan menyediakan tautan antara nama acara yang baik, kelas acara, penyedia, dan profil atau kategori acara. Anda juga dapat menggunakan aturan untuk menentukan interval waktu minimum untuk memicu peristiwa tertentu.
Listing 8. Aturan
<!-- Aturan menghubungkan peristiwa ke penyedia dan profil, dan menentukan interval untuk pemeriksaan peristiwa -->
<aturan>
<tambahkan nama="Peristiwa Basis Data Khusus" eventName="Peristiwa DB Khusus"
penyedia="WmiEventProvider" profile="Database" minInterval="00:01:00" />
<add name="Permintaan Web Standar" eventName="Semua Acara"
penyedia="SqlEventProvider" profile="Default" minInterval="00:01:00" /> </aturan>
</Pemantauan Kesehatan>
Aturan melakukan beberapa tugas berbeda yang dikonfigurasikan oleh properti berbeda:
• nama. Nama aturan adalah nama ramah yang muncul saat acara dikirimkan ke penerima.
• Nama acara. eventName memetakan ke peristiwa yang dikonfigurasi di zona.
• penyedia. Penyedia adalah tautan ke penyedia yang dikonfigurasi di zona tersebut. Peristiwa apa pun yang cocok dengan aturan ini akan dikirimkan melalui penyedia ini ke target yang didukung oleh penyedia ini. Misalnya, System.Web.Management.SqlWebEventProvider secara otomatis menulis peristiwa ke database SQL Server.
• profil. Penyedia yang berbeda menggunakan properti profil sebagai filter untuk menampilkan acara. Misalnya, penyedia email mungkin mengirim pesan langsung untuk acara apa pun dengan profil "mendesak", namun mungkin juga hanya mengirim email harian dengan kompilasi acara profil "rutin" untuk hari itu.
• Interval menit. Beberapa peristiwa, seperti detak jantung, harus terjadi dalam interval waktu sesingkat mungkin. Anda dapat menggunakan properti ini untuk mengatur interval kejadian minimum.
Area konfigurasi ini memungkinkan Anda mengatur berbagai peristiwa terkait kesehatan dan memetakan peristiwa tersebut ke berbagai penyedia. Misalnya, Anda dapat mengatur detak jantung yang mengirimkan peristiwa WMI setiap 10 menit. Demikian pula, Anda dapat mengatur peringatan email untuk setiap pengecualian yang tidak tertangkap.
Artikel terkait:
http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B893664
http://blog.csdn.net/dshpsky/archive/2006/06/18/810893.aspx