Procedura: implementare l'esempio di provider di monitoraggio dello stato personalizzato
Aggiornamento: novembre 2007
Nell'esempio riportato nell'argomento Esempio di provider di monitoraggio dello stato di ASP.NET personalizzato viene illustrato come creare un provider personalizzato che elabori gli eventi relativi allo stato di ASP.NET. Nell'esempio di codice viene illustrato come derivare dalla classe BufferedWebEventProvider per creare un provider personalizzato che scriva le informazioni sull'evento in un file locale.
L'esempio è volutamente molto semplice e si pone l'obiettivo di offrire un controllo completo dei meccanismi basilari di un provider personalizzato. In una situazione reale il codice di esempio può essere utilizzato come un test preliminare del comportamento di un'applicazione che consenta di comprendere le informazioni fornite dal monitoraggio dello stato di ASP.NET.
Nel provider di esempio sono illustrate le seguenti funzionalità:
Compilazione di un provider personalizzato mediante l'ereditarietà dalla classe BufferedWebEventProvider. Tale provider include la capacità di conservare informazioni sull'evento basate su vari fattori, ad esempio l'intervallo di tempo specificato, prima dell'accesso.
Configurazione di un provider personalizzato.
Interfaccia con il Visualizzatore eventi di Windows.
Per eseguire l'esempio è necessario:
Internet Information Services (IIS) installato nello stesso server su cui viene eseguita l'applicazione Web. Per ulteriori informazioni, vedere Procedura: creare e configurare directory virtuali in IIS 5.0 e 6.0 o cercare Internet Information Services all'indirizzo https://www.microsoft.com.
Un'applicazione Web ASP.NET.
Per compilare il provider di eventi personalizzato
Compilare il provider di eventi personalizzati come una libreria e inserire la libreria nella directory Bin dell'applicazione ASP.NET oppure assegnare un nome sicuro all'assembly e inserirlo nella Global Assembly Cache (GAC).
Nell'esempio di comando riportato di seguito viene illustrato come compilare l'esempio utilizzando il compilatore basato su riga di comando.
vbc /out:<example_name>.dll /t:library <example_name>.vb /r:System.Web.dll /r:System.Configuration.dll /r:<required namespace>
csc /out:<example_name>.dll /t:library <example_name>.cs /r:System.Web.dll /r:System.Configuration.dll /r:<required namespace>
Nota:
Se non è possibile eseguire il comando del compilatore, è necessario aggiungere il percorso di installazione di .NET Framework alla variabile Windows PATH prima di eseguire il comando. In Windows fare clic con il pulsante destro del mouse su Risorse del computer, scegliere Proprietà, quindi selezionare la scheda Avanzate e fare clic sul pulsante Variabili di ambiente. Nell'elenco Variabili di sistema fare doppio clic sulla variabile Path. Nella casella di testo Valore variabile aggiungere un punto e virgola (;) alla fine dei valori preesistenti, quindi digitare il percorso di installazione di .NET Framework. .NET Framework viene in genere installato nella cartella di installazione nel percorso Windows in \Microsoft.NET\Framework\versionNumber.
Per configurare l'applicazione per l'utilizzo dell'esempio
Se nella cartella principale dell'applicazione è già presente un file denominato Web.config, aprirlo. In caso contrario, creare un file di testo denominato Web.config e aggiungere il testo seguente:
<?xml version="1.0"?> <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> </system.web> </configuration>
All'interno dei tag system.web aggiungere il seguente elemento healthMonitoring.
<healthMonitoring heartBeatInterval="0" enabled="true"> <bufferModes> <add name="Custom Notification" maxBufferSize="10" maxFlushSize="5" urgentFlushThreshold="2" regularFlushInterval="Infinite" urgentFlushInterval="00:00:30" /> </bufferModes> <providers> <add name="SampleEventProvider" type="Samples.AspNet.Management.SampleBufferedEventProvider" buffer="true" bufferMode="Custom Notification" /> </providers> <profiles> <add name="Custom" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" /> </profiles> <rules> <add name="Custom Event Provider" eventName="All Events" provider="SampleEventProvider" profile="Custom" /> </rules> </healthMonitoring>
Le impostazioni dell'elemento healthMonitoring utilizzano un elemento providers per aggiungere il provider personalizzato e specificare un elemento profiles che, in questo caso, protegge il server limitando il numero di generazioni consentite dell'evento. Nell'esempio è incluso anche un elemento rules per associare un evento al profilo e al provider.
L'attributo type può elencare solo il nome della classe, come nell'esempio di codice precedente, o un tipo completo, come nell'esempio seguente:
type="Samples.AspNet.Management.SampleWebRequestEvent, Sample.SampleCustomEventProvider,Version=1.0.0.0,Culture=neutral, PublicKeyToken=xxxxxxxxxxxx"
Nota:
Il tipo completo è richiesto solo se la classe è stata installata nella Global Assembly Cache o nella directory Bin.
Per eseguire il test dell'evento Web personalizzato
Nel browser richiedere una pagina dell'applicazione Web.
L'esecuzione delle pagine nell'applicazione genera l'evento personalizzato.
Per visualizzare i dati degli eventi personalizzati, aprire il file di log specificato dalla variabile logFilePath nel codice.
Vedere anche
Concetti
Esempio di provider di monitoraggio dello stato di ASP.NET personalizzato
Cenni preliminari sul monitoraggio dello stato di ASP.NET
Riferimenti
Elemento healthMonitoring (schema delle impostazioni ASP.NET)