Di ASP.NET 2.0, kejadian dapat dipantau menggunakan atribut healthMonitoring. Atribut healthMonitoring adalah penyedia berbasis metode tempat Anda dapat membuat penyedia Anda sendiri. Dengan menggunakan atribut healthMonitoring, kita dapat mencatat kesalahan, kejadian sukses, dll., untuk sumber data yang berbeda, seperti log kejadian, Sql Server dan bahkan membuat penyedia kita sendiri dengan mewarisi kelas WebEventProvider. Pada artikel ini, saya akan memandu konfigurasi aplikasi web yang mendeteksi kesalahan SqlServer dan mengirimkan email ke alamat email seseorang. Pertama, lihat bagian program healthMonitoring di web.config, tempat Anda dapat membuat acara yang akan Anda gunakan.
<healthMonitoring Enabled="true|false" heartBeatInterval="interval waktu">
<bufferModes>... </bufferModes>
<penyedia>... </penyedia>
<pemetaan peristiwa>... </pemetaan peristiwa>
<profil>... </profil>
<aturan>... </aturan>
</healthMonitoring>
Jika Anda melihat elemen <healthMonitoring>, Anda dapat menentukan apakah Anda dapat mengatur atribut menjadi valid atau tidak, dan Anda juga dapat menentukan interval waktu untuk membangunkan WebHeaderBeatEvent. healthMonitoring memiliki 5 anak.
bufferModes, tempat Anda dapat menentukan ukuran buffer suatu Penyedia.
Provider, disini menjelaskan tentang Provider yang menangani event tersebut.
eventMappings, di sini Anda dapat menggambar nama acara yang terkait dengan jenis acara ramah.
profil, tempat Anda menentukan kumpulan kumpulan parameter yang dapat digunakan untuk mengonfigurasi peristiwa.
aturan, gambarkan grafik acara Penyedia di sini.
Anda dapat membaca lebih lanjut tentang elemen ini di dokumentasi VS 2550.
Sebelum melanjutkan, berikut daftar beberapa Penyedia di ASP.NET:
System.Web.Management.MailWebEventProvider
Sistem.Web.Manajemen.SimpleMailWebEventProvider
Sistem.Web.Manajemen.TemplatedMailWebEventProvider
Sistem.Web.Manajemen.TraceWebEventProvider
Sistem.Web.Manajemen.EventLogWebEventProvider
Sistem.Web.Manajemen.SqlWebEventProvider
System.Web.Management.WmiWebEventProvider
tidak perlu menjelaskan hal ini, namanya memberi tahu kita fungsinya. Sebutkan juga bahwa SqlWebEventProvider mengandalkan server Sql untuk bekerja, yang menyimpan acara di tabel aspnet_Web_Event. Untuk menginstal database ini, wizard aspnet_regsql.exe yang terletak di folder framework harus dijalankan.
Sekarang, konfigurasikan program agar memiliki kesalahan login untuk penyedia server Sql dan menghasilkan kesalahan saat mengirim email.
Berikut ini adalah contoh penggunaan SqlWebEventProvider dan SimpleMailWebEventProvider untuk menyimpan kejadian kesalahan.
<healthMonitoring diaktifkan="benar" heartBeatInterval="0">
<bufferMode>
<tambahkan nama="Pemberitahuan Penting" maxBufferSize="100" maxFlushSize="20"urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00" maxBufferThreads="1"/> <
tambahkan nama="Analisis " maxBufferSize="1000" maxFlushSize="100" urgenFlushThreshold="100"
regularFlushInterval="00:05:00" urgentFlushInterval="00:01:00" maxBufferThreads="1"/>
</bufferModes>
<penyedia>
<tambahkan nama="CriticalMailEventProvider" type="System.Web.Management.SimpleMailWebEventProvider, System.Web ..." [email protected] [email protected] prioritas="Tinggi" bodyHeader=" Peringatan!"
bodyFooter="Harap selidiki secepatnya." subjectPrefix="Diperlukan tindakan." buffer="true" bufferMode="Pemberitahuan Penting" maxEventLength="4096" maxSize="4096" maxMessagesPerNotification="1"/>
<tambahkan nama="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider, System.Web ..."
connectionStringName="LocalSqlServer" maxEventDetailsLength="1073741823" buffer="benar"
bufferMode="Analysis"/>
</providers>
<eventMappings>
<tambahkan nama="Semua Kesalahan" type="System.Web.Management.WebBaseErrorEvent, System.Web ..."/>
<tambahkan nama="Kesalahan Pemrosesan Permintaan" type="System.Web.Management.WebRequestErrorEvent, System.Web .../>
</eventMappings>
<profil>
<tambahkan nama="Default" minInstances="1" maxLimit=" Tak Terbatas" minInterval="00:10:00"/>
</profil>
<aturan>
<tambahkan nama="Semua Kesalahan Default" eventName="Semua Kesalahan" penyedia="SqlWebEventProvider" profile="Default"
minInterval="00:00:30"/>
<add name="Request Processing Errors" eventName="Request Processing Errors" provider="CriticalMailEventProvider" profile="Default"/>
</rules>
</healthMonitoring>
Dalam contoh ini Di , gunakan penyedia Sql untuk mencatat semua kejadian kesalahan, dan gunakan penyedia email untuk mengirim pesan ketika kejadian kesalahan permintaan Web dibangunkan.
Berikut beberapa peristiwa yang dirilis dengan ASP .NET 2.0:
System.Web.Management.WebBaseEvent
Sistem.Web.Manajemen.WebHeartBeatEvent
Sistem.Web.Manajemen.WebApplicationLifetimeEvent
Sistem.Web.Manajemen.WebRequestEvent
Sistem.Web.Manajemen.WebBaseErrorEvent
Sistem.Web.Manajemen.WebErrorEvent
Sistem.Web.Manajemen.WebRequestErrorEvent
Sistem.Web.Manajemen.WebAuditEvent
Sistem.Web.Manajemen.WebFailureAuditEvent
Sistem.Web.Manajemen.WebSuccessAuditEvent
Sistem.Web.Manajemen.WebManagementEvent
Sistem.Web.Manajemen.WebViewStateFailureAuditEvent
Sistem.Web.Manajemen.WebAuthenticationFailureAuditEvent
System.Web.Management.WebAuthenticationSuccessAuditEvent
dapat menggunakan peristiwa ini untuk membuat profil penyedia. Anda juga dapat membuat acara Anda sendiri yang diwarisi dari kelas WebBaseEvent.
Untuk membangunkan suatu peristiwa secara otomatis, Anda dapat menggunakan metode bangun dari kelas WebBaseEvent:
coba
{
//....
}
tangkapan(Pengecualian e)
{
jika (HealthMonitoringManager.Enabled)
{
WebBaseEvent.Raise(WebErrorEvent baru("Pesan Kesalahan Saya", null, 5000, e));
}
}
atau:
if (HealthMonitoringManager.Enabled)
{
WebErrorEvent event = new WebErrorEvent("Pesan kesalahan saya", null, 5000, e);
acara.Naikkan();
}