healthMonitoring : la salute è una cosa seria
ne avevo parlato in passato, giusto un accenno, il nuovo Framework mette a disposizione, eventi, provider e strumenti per monitorare la "salute" della nostra applicazione.
I tipi si trovano nel namespaces System.Web.Management.
prima di utilizzare i nuovi strumenti che il Framework ci mette a disposizione, compresii Profiles e RoleManager , tanto per citarne alcuni, dobbiamo configurare il db, specialmente se vogliamo usare i provider nativi progettati per SQL SERVER.
ci sono due strade per farlo, usare il comodo tool (aspnet_regsql.exe) che possiamo trovare nella cartella di istallazione, o tramite la classe SqlServices, più precisamente il metodo Install.
configurato il db, non ci resta aggiugere le segueti righe al web.config.
<healthMonitoring enabled="true"> <bufferModes> <clear/> <add name="Notification" maxBufferSize="100" maxFlushSize="20" urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00" maxBufferThreads="1"/> </bufferModes> <eventMappings > <clear/> <add name="mio" type="System.Web.Management.WebApplicationLifetimeEvent"/> <add name="mio2" type="System.Web.Management.WebAuditEvent"/> </eventMappings> <providers> <clear/> <add name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="LocalSqlServer" bufferMode="Notification"></add> </providers> <rules> <clear/> <add name="mio default" eventName="mio" provider="SqlWebEventProvider" /> <add name="mio default2" eventName="mio2" provider="SqlWebEventProvider" /> </rules> <profiles> <clear/> </profiles> </healthMonitoring>
nell'esempio è stao usato il provider per sql, ma potremo farci spedire una mail, creare un doc e salvare nel log (avendo i giusti permessi).
ieri sera ho fatto dei test, sono riuscito ad avere le giuste informazioni su quando l'applicazione veniva compilata, arrestata, su le richieste andate a buon fine ecc.
devo ancora comprendere bene il campo di utilizzo di alcuni eventi e soprattutto, quando vengono generati, armato di reflector ho trovato il "luogo di nascita" per l'evento WebApplicationLifetimeEvent, mentre per gli altri devo ancora stanarli.











