Cenni preliminari sul monitoraggio dello stato di ASP.NET

Aggiornamento: novembre 2007

Il monitoraggio dello stato di ASP.NET consente agli amministratori di sistema di monitorare lo stato delle applicazioni Web distribuite.

Nota:

Per generare un evento di monitoraggio dello stato è necessario un livello di attendibilità medio o superiore.

Vengono illustrati i seguenti argomenti:

  • Scenari

  • Funzionalità di monitoraggio dello stato di ASP.NET

  • Informazioni di supporto

  • Esempi di codice

  • Riferimento alle classi

Scenari

Il monitoraggio dello stato di ASP.NET consente di eseguire quanto segue:

  • Monitorare le prestazioni di un'applicazione per accertarne l'integrità.

  • Effettuare una rapida diagnosi delle applicazioni o dei sistemi non correttamente funzionanti.

  • Valutare gli eventi significativi durante il ciclo di vita di un'applicazione.

  • Monitorare le applicazioni ASP.NET attive, singolarmente o in una Web farm.

  • Registrare eventi non necessariamente correlati agli errori in un'applicazione ASP.NET.

Torna all'inizio

Funzionalità

Il sistema di monitoraggio dello stato di ASP.NET include quanto segue:

  • Tipi di evento contenenti le informazioni sullo stato di integrità dell'applicazione.

  • Tipi di provider che elaborano le informazioni sugli eventi.

  • Tipi aggiuntivi che facilitano la gestione degli eventi di stato.

Torna all'inizio

Informazioni di supporto

Il monitoraggio dello stato di ASP.NET offre un modo semplice per controllare l'integrità di un'applicazione ASP.NET e ottenere informazioni di runtime dettagliate sulle risorse ASP.NET, al fine di instrumentare l'applicazione. Contiene classi di eventi di monitoraggio dello stato del Web (eventi Web) e provider di monitoraggio dello stato (listener) pronti per l'uso. Negli eventi Web sono assemblate le informazioni sugli eventi di stato.

I provider restano in attesa degli eventi e ne utilizzano le informazioni, in genere mediante registrazione o notifica a un amministratore. Per connettere un evento Web a un provider, operazione definita attivazione dell'evento, è necessario definire le impostazioni nel file di configurazione dell'applicazione.

Il sistema di monitoraggio dello stato di ASP.NET viene implementato tramite classi nello spazio dei nomi System.Web.Management.

Configurazione del monitoraggio dello stato ASP.NET

È possibile configurare le applicazioni per l'utilizzo di provider di monitoraggio incorporati o personalizzati che elaborano le informazioni di monitoraggio e generano report sullo stato di integrità e sulle caratteristiche di prestazioni dell'applicazione instrumentata.

Per aggiungere eventi Web e provider a un'applicazione, occorre configurare la sezione healthMonitoring nel file di configurazione. Si utilizzano quindi classi incorporate o personalizzate per restare in attesa dei dati degli eventi ed elaborarli.

Per ulteriori informazioni sui file di configurazione, vedere File di configurazione ASP.NET.

Gerarchia di classi di eventi Web

Quando viene generato un evento Web, viene creata un'istanza della classe di eventi associata. I dati dell'evento vengono raccolti nelle proprietà di questo oggetto. I provider di eventi elaborano tali dati.

Gli eventi Web possono contenere informazioni sul processo di lavoro, sul dominio applicazione, sui dati di richiesta, sui dati di risposta, sugli errori dell'applicazione, sugli errori di configurazione e sugli eventi di controllo. Le informazioni sullo stato contenute in una classe di eventi padre vengono ereditate dalle classi di eventi figlio.

Nell'illustrazione che segue vengono mostrate le relazioni tra le classi di eventi Web.

Gerarchia di classi di eventi Web

Più un evento si trova in fondo nella gerarchia di classi di eventi Web, più specifici sono i dati per l'applicazione ASP.NET. Ad esempio, le classi derivate possono esporre informazioni quali analisi dello stack, IP client e informazioni su thread e processi.

Informazioni sugli eventi Web

Nella tabella che segue sono elencate informazioni utili per decidere quale classe di eventi Web utilizzare o da quale classe ereditare. Le righe fanno riferimento alle classi di eventi Web, mentre le colonne fanno riferimento alle classi di informazioni, che di norma vengono messe a disposizione sotto forma di proprietà nelle classi di eventi Web.

Se l'applicazione non viene eseguita a un livello di attendibilità totale, sarà possibile ereditare solo la classe WebBaseEvent. In questo modo viene garantita la protezione contro il rischio di esposizione di informazioni riservate attraverso le classi di informazioni elencate nella tabella.

Classi di eventi Web

WebApplicationInformation

WebProcessInformation

WebProcessStatistics

WebRequestInformation

WebThreadInformation

WebBaseEvent

Dati generati dalla classe

Non disponibile

Non disponibile

Non disponibile

Non disponibile

WebManagementEvent

Dati generati dalla classe padre

Dati generati dalla classe

Non disponibile

Non disponibile

Non disponibile

WebHeartbeatEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Dati generati dalla classe

Non disponibile

Non disponibile

WebRequestEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Dati generati dalla classe

Non disponibile

WebApplicationLifetimeEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Non disponibile

Non disponibile

WebBaseErrorEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Non disponibile

Non disponibile

WebErrorEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Dati generati dalla classe

Dati generati dalla classe

WebRequestErrorEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Dati generati dalla classe padre

Dati generati dalla classe padre

WebAuditEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Dati generati dalla classe

Non disponibile

WebSuccessAuditEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Dati generati dalla classe padre

Non disponibile

WebAuthenticationSuccessAuditEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Dati generati dalla classe padre

Non disponibile

WebFailureAuditEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Dati generati dalla classe padre

Non disponibile

WebAuthenticationFailureAuditEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Dati generati dalla classe padre

Non disponibile

WebViewStateFailureAuditEvent

Dati generati dalla classe padre

Dati generati dalla classe padre

Non disponibile

Dati generati dalla classe padre

Non disponibile

Gerarchia delle classi di provider

In ASP.NET sono disponibili provider incorporati che è possibile utilizzare per elaborare gli eventi Web. È inoltre possibile ereditare da classi incorporate per creare un provider personalizzato, tenendo conto in ogni caso delle limitazioni di ereditarietà elencate di seguito:

  • La classe WebEventProvider può essere ereditata dalle applicazioni eseguite a qualsiasi livello di attendibilità.

  • La classe BufferedWebEventProvider può essere ereditata dalle applicazioni eseguite a qualsiasi livello di attendibilità.

  • La classe SqlWebEventProvider può essere ereditata solo dalle applicazioni eseguite a un livello di attendibilità totale.

Le altre classi non possono essere ereditate dalle applicazioni, indipendentemente dal livello di attendibilità. Per ulteriori informazioni, vedere i cenni preliminari sulle classi delle singole classi di provider.

Nella seguente illustrazione viene mostrata la relazione tra le classi di provider Web dello spazio dei nomi System.Web.Management.

Gerarchia di classi di eventi Web

Utilizzo degli eventi di monitoraggio dello stato di ASP.NET

Gli eventi di monitoraggio dello stato di ASP.NET possono essere utilizzati come segue:

  • Utilizzando classi di provider ed eventi Web incorporate. In genere non sarà necessario fornire implementazioni personalizzate delle classi di eventi Web ASP.NET. Questi eventi non vengono generati dall'applicazione, bensì da .NET Framework. Tuttavia, è necessario configurarli come spiegato più avanti in questo argomento. Per ulteriori informazioni, vedere Procedura: inviare notifiche di posta elettronica per il monitoraggio dello stato.

  • Creando classi personalizzate per eventi Web o provider. Generalmente si creano eventi Web personalizzati per aggiungere informazioni personalizzate a quanto già fornito dagli eventi Web incorporati. I provider personalizzati vengono di solito creati se si desidera inviare dati di eventi mediante un meccanismo diverso da quello disponibile con i provider incorporati. Per ulteriori informazioni, vedere la classe Estensione degli eventi di monitoraggio dello stato ASP.NET.

Utilizzo di eventi Web e provider incorporati

L'utilizzo di eventi Web e provider incorporati per il monitoraggio dello stato rappresenta la strategia più comune. Richiede unicamente la configurazione dell'applicazione per l'utilizzo degli eventi e provider necessari. È necessario effettuare le seguenti operazioni:

  • Aggiungere la classe di eventi Web ASP.NET incorporata necessaria all'elemento eventMappings della sezione healthMonitoring nel file di configurazione dell'applicazione.

  • Aggiungere il provider che utilizza l'evento all'elemento providers della sezione healthMonitoring.

  • Aggiungendo una voce all'elemento rules che definisca l'associazione tra l'evento e il provider.

Per impostazione predefinita, le classi di monitoraggio dello stato incorporate in ASP.NET vengono configurate nella sezione healthMonitoring del file Web.config principale. La sezione healthMonitoring stabilisce la seguente configurazione predefinita:

  • Tutte le classi di eventi Web che derivano da WebBaseEvent vengono specificate nell'elemento eventMappings. Questa sezione viene utilizzata per assegnare un nome descrittivo a un gruppo di classi di eventi.

  • Tutte le classi di eventi derivanti da WebBaseEvent sono incluse in almeno uno dei gruppi definiti nell'elemento eventMappings.

I provider di eventi EventLogWebEventProvider, WmiWebEventProvider e SqlWebEventProvider sono specificati nell'elemento providers. È possibile specificare altri provider incorporati nell'elemento providers, ad esempio le classi SimpleMailWebEventProvider, TemplatedMailWebEventProvider o TraceWebEventProvider.

Le regole che associano gli eventi di errore Web e di controllo alle classi EventLogWebEventProvider vengono specificati nell'elemento rules. È possibile attivare altri eventi Web e provider aggiungendo ulteriori elementi rules. Un evento viene considerato attivato se mappato a un provider di eventi nell'elemento rules. Gli elementi eventMappings e providers devono essere configurati per l'evento ma, a meno che non siano connessi nell'elemento rules, l'evento non verrà attivato.

È possibile specificare i valori dei parametri per gli elementi configurati. Negli esempi sono inclusi parametri che limitano il numero di eventi che possono verificarsi, altri che specificano l'intervallo tra due eventi o altri ancora che specificano le opzioni di buffer degli eventi per i provider SQL e di posta.

Configurazione di un provider personalizzato

Per elaborare in modo personalizzato le informazioni sugli eventi Web, è possibile compilare un provider di eventi di stato personalizzato. Tale provider sarà una classe che eredita dalla classe WebEventProvider o BufferedWebEventProvider. Per un esempio, vedere Procedura: implementare l'esempio di provider di monitoraggio dello stato personalizzato. La creazione di un provider personalizzato è la forma più comune di personalizzazione del monitoraggio dello stato. Richiede la modifica del file di configurazione in uno dei seguenti modi:

  • Aggiungendo il provider personalizzato che elabora l'evento all'elemento providers della sezione healthMonitoring nel file di configurazione.

  • Aggiungendo una voce all'elemento rules che definisca l'associazione tra l'evento e il provider.

  • Inserendo l'assembly contenente l'implementazione del provider personalizzato nella sottodirectory Bin dell'applicazione. Non è possibile inserire il file del codice sorgente del provider nella sottodirectory App_Code, in quanto la configurazione e la creazione del sistema di monitoraggio dello stato vengono eseguite prima che i file di codice della sottodirectory App_Code vengano compilati.

L'attributo type dell'elemento providers richiede almeno il nome della classe. Se l'assembly non si trova nella directory Bin dell'applicazione, è necessario che abbia un nome sicuro e che sia installato nella Global Assembly Cache (GAC). In tal caso, l'attributo type dell'elemento providers richiede il nome sicuro completo, come illustrato nell'esempio che segue, in cui i valori Version e PublicKeyToken corrispondono all'assembly:

type="Microsoft.Samples.Web.Management.SampleCustomEventProvider, Sample.SampleCustomEventProvider,Version=n.n.n.n,Culture=neutral, PublicKeyToken=xxxx"

Nell'esempio che segue viene illustrato come associare il provider SampleCustomEventProvider all'evento WebHeartbeatEvent. L'evento Heartbeats è già configurato nel file Web.config di primo livello.

<healthMonitoring 
  heartBeatInterval="1" 
  enabled="true">
  <rules>
    <add 
      name="Heartbeat Events" 
      eventName="Heartbeats" 
      provider="Sample Custom Event Provider"
      profile="Default" 
      minInstances="1" 
      maxLimit="Infinite" 
      minInterval="00:01:00"
      custom="" 
    />
  </rules>
  <providers>
    <add 
      name="Sample Custom Event Provider" 
      type="Microsoft.Samples.Web.Management.SampleCustomEventProvider, Sample.SampleCustomEventProvider,Version=1.0.0.0,Culture=neutral, PublicKeyToken=xxxxxxxxxxxx" 
    />
  </providers>
</healthMonitoring>

Configurazione di un evento personalizzato

Se sono necessarie informazioni sugli eventi di stato personalizzati, è possibile compilare un evento di stato personalizzato. Per un esempio, vedere Procedura: implementare e generare eventi di monitoraggio dello stato di ASP.NET personalizzati. La creazione di un evento Web personalizzato è meno comune della creazione di un provider personalizzato Richiede la modifica del file di configurazione. Inoltre, è necessario che l'evento personalizzato venga generato in modo esplicito al momento opportuno.

Per configurare l'evento, è necessario effettuare quanto segue:

  • Aggiungere la classe di eventi di stato personalizzati all'elemento eventMappings della sezione healthMonitoring.

  • Aggiungere un elemento rules che definisce l'associazione tra l'evento e il provider.

  • Aggiungere l'assembly contenente l'implementazione dell'evento Web personalizzato nella sottodirectory Bin dell'applicazione ASP.NET. In alternativa, è possibile aggiungere il file del codice sorgente dell'evento nella sottodirectory App_Code.

Se si utilizza un assembly, l'attributo type dell'elemento eventMappings richiede almeno il nome della classe e il nome file dell'assembly, come illustrato nell'esempio di codice riportato di seguito:

type="System.Web.Management.SampleCustomWebEvent, Sample.SampleCustomWebEvent"

Se si utilizza un file del codice sorgente, è necessario specificare solo il nome della classe.

Nell'esempio riportato di seguito viene illustrato come associare il provider di eventi EventLogWebEventProvider a un evento personalizzato denominato SampleCustomWebEvent. Il provider di eventi EventLogProvider è già configurato nel file Web.config principale.

<healthMonitoring 
  heartBeatInterval="0" 
  enabled="true">
  <rules>
    <add 
      name="Sample Custom Events" 
      eventName="SampleCustomWebEvent" 
      provider="EventLogProvider"
      profile="Default" 
      minInstances="1" 
      maxLimit="Infinite" 
      minInterval="00:01:00"
      custom="" 
    />
  </rules>
  <eventMappings>
    <add 
      name="SampleCustomWebEvent" 
      type="System.Web.Management.SampleCustomWebEvent, Sample.SampleCustomWebEvent,Version=1.0.0.0,Culture=neutral, PublicKeyToken=xxxxxxxxxxxx" "
      startEventCode="0" 
      endEventCode="2147483647" 
    />
  </eventMappings>
</healthMonitoring>

Protezione del monitoraggio dello stato di ASP.NET

Per impostazione predefinita, la funzionalità di monitoraggio dello stato per le applicazioni ASP.NET è attivata. È possibile disattivarla impostando l'attributo enabled dell'elemento healthMonitoring su false. Per le impostazioni di configurazione predefinite sono specificati i valori più sicuri disponibili. Per ulteriori informazioni sulle impostazioni di configurazione del monitoraggio dello stato, vedere healthMonitoring. Si consiglia di bloccare le impostazioni di configurazione del monitoraggio dello stato mediante l'elemento location.

Nota:

Quando si implementano consumer o provider di eventi personalizzati, è necessario codificare o verificare il contenuto degli eventi al fine di evitare problemi con script da altri siti.

Protezione dei valori di configurazione

Quando si archiviano informazioni riservate in un file di configurazione per un'applicazione, è bene crittografare i valori riservati utilizzando la configurazione protetta. Tra le informazioni particolarmente riservate sono incluse le chiavi di crittografia archiviate nell'elemento di configurazione machineKey e le stringhe di connessione a un'origine dati archiviate nell'elemento di configurazione connectionStrings. Per ulteriori informazioni, vedere Crittografia delle informazioni di configurazione utilizzando la configurazione protetta.

La sezione di configurazione healthMonitoring è accessibile unicamente tramite codice che utilizza un livello di attendibilità medio o superiore. In questo modo viene impedito alle applicazioni con attendibilità bassa di registrare tipi personalizzati.

Sicurezza per l'estensione del monitoraggio dello stato

I tipi di monitoraggio dello stato nello spazio dei nomi System.Web.Management presentano le caratteristiche descritte di seguito:

  • I costruttori della classe di base sono contrassegnati come protectedinternal. Le istanze dei tipi di evento della classe di base non possono quindi essere create direttamente mediante codice utente.

  • L'accesso alle istanze di eventi Web è limitato ai provider, ai filtri e alle pagine di modelli specificati nella configurazione.

  • Le richieste di collegamento ed ereditarietà a eventi con contenuto protetto garantiscono la sola derivazione di eventi personalizzati completamente attendibili.

  • Gli eventi personalizzati attendibili che espongono dati sensibili da proprietà di eventi protetti devono applicare direttamente la sicurezza contro l'accesso al codice per evitare attacchi subdoli. Per ulteriori informazioni sulla sicurezza control l'accesso al codice, vedere Protezione dall'accesso di codice ASP.NET o Nozioni fondamentali sulla protezione dall’accesso di codice.

  • I tipi WMI (Strumentazione gestione Windows) utilizzati per visualizzare gli eventi Web vengono bloccati per impedire a tutti gli utenti di accedere ai dati degli eventi.

    Nota:

    Quando si implementano consumer o provider di eventi personalizzati, è necessario codificare o verificare il contenuto degli eventi al fine di evitare problemi con script da altri siti.

Sicurezza delle connessioni alle origini dati

È possibile creare provider di eventi di monitoraggio dello stato personalizzati per registrare i dati degli eventi in un database. ASP.NET include un provider SQL. Per ulteriori informazioni sulla registrazione dei dati degli eventi, vedere Protezione dell'accesso ai dati.

Per proteggere la connessione al server database, è opportuno crittografare le informazioni sulle stringhe di connessione nel file di configurazione utilizzando la configurazione protetta. Per ulteriori informazioni, vedere la classe Crittografia delle informazioni di configurazione utilizzando la configurazione protetta.

In caso di utilizzo di un provider SQL, il database deve essere adeguatamente protetto mediante autenticazione. I file di Microsoft SQL Server Express Edition devono essere protetti mediante elenchi di controllo di accesso (ACL) e l'autenticazione SQL.

Nota:

Durante la registrazione di eventi in un database, SQL Server Express Edition non deve essere eseguito in un account senza privilegi.

Protezione contro gli attacchi Denial of Service

Gli eventi Web possono essere avviati da una richiesta HTTP o dal codice dell'applicazione che genera eccezioni o eventi. La capacità del provider di eventi può essere superata a causa di un elevato numero di eventi o di eventi di grandi dimensioni. Ne deriva un sovraccarico del server o dell'applicazione ASP.NET, con effetti negativi sull'utilizzo della memoria, sullo spazio su disco e sul traffico di rete.

Per ridurre il rischio di esposizione di un'applicazione a un attacco Denial of Service, ASP.NET utilizza il seguente comportamento predefinito:

  • ASP.NET seleziona una sola istanza di un evento al minuto. Questa frequenza di limitazione delle richieste è configurata nell'elemento profiles e associata agli eventi e ai provider nell'elemento rules.

  • La memorizzazione degli eventi nel buffer è isolata per ciascun tipo di provider al fine di evitare conflitti di utilizzo dello spazio nel buffer. Le impostazioni del buffer vengono configurate nell'elemento bufferModes. I provider possono essere configurati per l'utilizzo di un insieme specifico di impostazioni del buffer mediante la definizione dell'elemento bufferModes contenente le impostazioni appropriate.

  • Per generare un evento personalizzato, è richiesto un livello di attendibilità medio o alto.

L'amministratore di sistema può configurare le impostazioni di limitazione delle richieste e di memorizzazione nel buffer per evitare il verificarsi di un overflow, in particolare per gli eventi che possono essere attivati mediante richieste HTTP. Inoltre, è possibile impostare modalità di buffer distinte per gestire eventi di importanza diversa.

Sicurezza per eventi e messaggi di errore

Per impedire che informazioni riservate vengano esposte a origini indesiderate, configurare l'applicazione in modo tale da non visualizzare messaggi di errore dettagliati. È anche possibile configurare l'applicazione in modo tale da visualizzare messaggi di errore dettagliati soltanto quando il client è il server Web stesso. Per ulteriori informazioni, vedere customErrors.

Per impostazione predefinita, ASP.NET registra gli eventi Web di grande entità, eccezionali e basati su richiesta nel sistema di monitoraggio delle prestazioni. Nella configurazione predefinita, i tentativi di accesso non riusciti comportano la registrazione dei nomi utente e di altre informazioni diagnostiche nel registro eventi dell'applicazione. Questi dati possono essere visualizzati nel Visualizzatore eventi di Windows. Se il server esegue uno dei prodotti Microsoft Windows Server, è possibile migliorare la sicurezza dell'applicazione impostando la protezione del registro eventi. È anche possibile impostare i parametri relativi alla dimensione, al mantenimento e ad altre caratteristiche del registro eventi per impedire un attacco Denial of Service indiretto.

Bloccare la configurazione del monitoraggio dello stato ASP.NET

In scenari caratterizzati da hosting di applicazioni, spesso si desidera bloccare alcune impostazioni in un sito per impedire che vengano modificate. Ad esempio, può essere necessario bloccare le impostazioni di monitoraggio delle stato per le applicazioni ospitate al fine di ridurre il rischio di modifiche accidentali alla configurazione dell'applicazione Web.

È possibile bloccare le impostazioni di configurazione aggiungendo un attributo allowOverride="false" a un tag <location>. Così facendo il sistema di configurazione genera un errore se un file di configurazione in posizione inferiore nella gerarchia cerca di eseguire l'override di una qualsiasi sezione di configurazione definita nell'elemento location.

Nel file di configurazione di esempio riportato di seguito viene illustrato come bloccare la sezione healthMonitoring di un'applicazione ASP.NET denominata application1. Le impostazioni possono essere archiviate a livello di server (nel file machine.config) o a livello di sito.

<configuration>
  <location path="application1" allowOverride="false">
    <system.web>
      <healthMonitoring
        enabled="true"
        heartBeatInterval="60">
        <bufferModes>
          <add name="Logging"
            maxBufferSize="1000"
            maxFlushSize="200"
            urgentFlushThreshold="800"
            regularFlushInterval="00:30:00"
            urgentFlushInterval="00:05:00"
            maxBufferThreads="1"
          />
        </bufferModes>
        <providers>
           <add name="EventLogProvider"
            type="System.Web.Management.EventLogWebEventProvider, System.Web, Version=%ASSEMBLY_VERSION%, Culture=neutral, PublicKeyToken=%MICROSOFT_PUBLICKEY%"
            buffer="true"
            bufferMode="Logging"
          />
        </providers>
        <eventMappings>
          <add name="All Errors"
            type="System.Web.Management.WebBaseErrorEvent, System.Web, Version=%ASSEMBLY_VERSION%, Culture=neutral, PublicKeyToken=%MICROSOFT_PUBLICKEY%" 
          />
        </eventMappings>
        <profiles>
          <add name="Default"
            minInstances="1"
            maxLimit="Infinite"
            minInterval="00:10:00"
          />
        </profiles>
        <rules>
          <add name="All Errors Default"
            eventName="All Errors"
            provider="EventLogProvider"
            profile="Default"
            minInterval="00:01:00" 
          />
        </rules>
      </healthMonitoring>
    </system.web>
  </location>
</configuration>

È possibile bloccare elementi con maggiore granularità utilizzando attributi aggiuntivi, ad esempio lockItem, lockAttributes e lockElements. Per ulteriori informazioni, vedere Attributi generali ereditati da elementi di sezioni.

Torna all'inizio

Esempi di codice

Procedura: implementare e generare eventi di monitoraggio dello stato di ASP.NET personalizzati

Procedura: implementare l'esempio di provider di monitoraggio dello stato personalizzato

Procedura: inviare notifiche di posta elettronica per il monitoraggio dello stato.

Procedura dettagliata: ascolto di eventi WMI durante il monitoraggio dello stato di ASP.NET

Torna all'inizio

Riferimento alle classi

  • System.Web.Management
    Lo spazio dei nomi contenente i tipi per la gestione e il monitoraggio dello stato di integrità delle applicazioni Web.

  • System.Management
    Lo spazio dei nomi contenente i tipi per la connessione all'infrastruttura WMI (Strumentazione gestione Windows).

  • System.Management.Instrumentation
    Lo spazio dei nomi contenente i tipi per instrumentare le applicazioni per potenziali consumer WMI.

  • HealthMonitoringSection
    Il tipo che ottiene o imposta a livello di codice gli attributi di configurazione healthMonitoring.

Torna all'inizio

Vedere anche

Attività

Procedura: bloccare le impostazioni di configurazione di ASP.NET

Concetti

Estensione degli eventi di monitoraggio dello stato ASP.NET

Cenni preliminari sulla configurazione di ASP.NET

Riferimenti

Elemento bufferModes per healthMonitoring (schema delle impostazioni ASP.NET)

Elemento providers per healthMonitoring (schema delle impostazioni ASP.NET)