System.Web.Management.WebEventProvider
ASP.NET 2.0 include l'API HealthMonitoring concepita per il monitoraggio dei siti installati in un sistema. In particolare l'API permette di controllare le prestazioni di un'applicazione per assicurare che sia funzionante nel modo desiderato, consente di diagnosticare in modo rapido blocchi applicativi o di sistema e si presta alla valutazione degli eventi significativi nel ciclo di vita delle applicazioni tramite logging e tracing.
Per il monitoraggio degli eventi (di tipo WebEvent) sono disponibili una grande quantità di Provider concreti disponibili direttamente all'interno del .NET Framework. Ciascuno di questi Provider rappresenta una diversa tipologia di listener. Gli eventi possono contenere informazioni di varia natura, che possono riguardare il worker process di ASP.NET, l'appdomain, i dati della richiesta e della risposta HTTP, gli errori applicativi e di configurazione. Ciascun Provider tratta queste informazioni indirizzandole verso canali specifici.
La classe EventLogWebEventProvider registra le informazioni legate agli eventi (in particolare gli errori) nell'ambito dell'Event Log di Windows. La classe SqlWebEventProvider utilizza invece un database SQL Server (di default, un database SQL Server Express nella cartella App_Data dell'applicazione) per salvare i dati di logging. La classe WmiWebEventProvider inoltra gli eventi web a WMI, convertendoli in eventi WMI. Le classi SimpleMailWebEventProvider e TemplatedMailWebEventProvider, che derivano entrambe da MailWebEventProvider, inviano un messaggio di posta elettronica quando un evento viene scatenato. Infine la classe TraceWebEventProvider inoltra le informazioni degli eventi al sistema di tracing di ASP.NET.
La struttura delle classi si diversifica rispetto alla versione discussa nell'articolo sul Provider Model, in particolare per quanto concerne la classe che funge da Manager. La classe HealthMonitoringManager utilizza un tipo annidato della classe HealthMonitoringSectionHelper contenuta nel namespace System.Web.Configuration: tale classe viene utilizzata per la lettura della sezione di configurazione dell'API. Il tipo annidato di nome ProviderInstances provvede di volta in volta ad attivare l'istanza non pubblica di un Provider nell'ambito del metodo privato GetProviderInstance(string).

La sezione di configurazione relativa al monitoraggio è rappresentata dal nodo <healthMonitoring />. L'esempio seguente mostra come è possibile configurare un Provider custom e definire le regole di funzionamento e il mapping all'evento specifico.
<healthMonitoring enabled="true" heartbeatInterval="00:00:00">
<providers>
<add name="SampleEventProvider"
type="Samples.AspNet.SampleEventProvider,
SampleEventProvider,
Version=0.0.0.0, Culture=neutral,
PublicKeyToken=92029af6cf75bd7c,
ProcessorArchitecture=Neutral"/>
</providers>
<eventMappings>
<add name="SampleWebRequests"
type="Samples.AspNet.SampleWebRequestEvent,
SampleWebRequestEvent,
Version=0.0.0.0, Culture=neutral,
PublicKeyToken=f0c63b9a560d5e5a"/>
</eventMappings>
<rules>
<add name="Sample Web Requests"
eventName="SampleWebRequests"
provider="SampleEventProvider"
profile="Default"
minInterval="00:01:00" />
<add name="Standard Web Requests"
eventName="All Events"
provider="SampleEventProvider"
profile="Default"
minInterval="00:01:00" />
</rules>
</healthMonitoring>
Contenuti dell'articolo
- Pagina 1
- Pagina 2
- Pagina 3
- Pagina 4
- Pagina 5
Per inserire un commento, devi registrarti alla nostra community.






Difficoltà
Stampa
Download 


