Eventi Web in ASP.NET 2.0

Dichiarazione di non responsabilità per contenuto KB ritirato

Il contenuto di questo articolo è riferito a prodotti per cui Microsoft non offre più il supporto. Questo articolo viene pertanto offerto "così com'è" e non sarà più aggiornato.

In questo articolo viene illustrata una versione beta di un prodotto Microsoft. Le informazioni contenute in questo articolo viene fornite come- e sono soggette a modifiche senza preavviso.

Nessun supporto formale è disponibile da Microsoft per questo prodotto Beta. Per informazioni su come ottenere supporto per una versione beta, consultare la documentazione fornita con i file del prodotto Beta oppure visitare il sito Web dove è stata scaricata.

Supporto di ASP.NET

Per personalizzare questa colonna in base alle esigenze, la invitiamo a inviare le proprie idee sugli argomenti di interesse e i problemi che si desidera vedere soluzione nei futuri articoli della Knowledge Base e le colonne di Support Voice. È possibile inviare idee e commenti e suggerimenti tramite il modulo Ask For It . È inoltre disponibile un collegamento al modulo nella parte inferiore della colonna.

Introduzione

Benvenuti alla colonna di ASP.NET Support Voice. Il mio nome è Jerry Orman. Ho lavorato con Microsoft oltre cinque anni e dedicato la maggior parte del mio tempo incentrato sulle tecnologie correlate al Web come FrontPage e le nuove tecnologie di SharePoint. Ho Ho trascorso l'ultimo anno con ASP.NET come servizio di supporto tecnico.

Nella colonna di Support Voice, questo mese mi occuperò per descrivere la nuova caratteristica di eventi Web disponibile nella prossima versione di ASP.NET 2.0.

La funzionalità di eventi Web in ASP.NET 2.0

Uno dei nuovi servizi principali forniti in ASP.NET 2.0 è la funzionalità di eventi Web fornita dal sistema di monitoraggio dello stato. Modificando il file Web. config, è possibile utilizzare il sistema di monitoraggio dello stato per registrare le eccezioni non gestite, moduli scaduti, ticket di autenticazione e tutti gli altri dati che si desidera registrati nell'applicazione. In questa colonna verrà iniziare utilizzando la funzionalità di eventi Web e vengono inoltre forniti esempi su come utilizzare i vari provider in ASP.NET 2.0.

La registrazione viene eseguita definendo una regola che associa un provider di eventi. La regola definisce il tipo di eventi che vengono inviati al provider. I seguenti eventi di base sono disponibili per consentire l'accesso:
WebBaseEventLa classe di evento di base per tutti gli eventi. Contiene le proprietà per tutti gli eventi tra codice di evento, codice dettagliato dell'evento, la data e ora dell'evento, sequenza di numero, il messaggio di evento e dettagli dell'evento.
WebManagementEventLa classe di evento di base per gli eventi di gestione, quali la durata dell'applicazione richiesta, errore e gli eventi di controllo.
WebHeartbeatEventL'evento generato dall'applicazione in base a intervalli regolari per acquisire informazioni sullo stato di runtime utile.
WebAuditEventLa classe base per gli eventi di controllo di protezione, utilizzati per contrassegnare condizioni di errore di autorizzazione, un errore di decrittazione, ecc.
WebRequestEventLa classe base per tutti gli eventi informativi richiesta.
WebBaseErrorEventLa classe base per tutti gli eventi che indica le condizioni di errore.
I tipi di provider disponibili consentono di inviare l'output di eventi a Visualizzatore eventi, SQL Server, Windows Management Instrumentation (WMI) e posta elettronica. I mapping di evento e il provider preconfigurata che ridurre la quantità di lavoro necessaria per ottenere l'output di eventi registrati.

ASP.NET 2.0 utilizza il registro eventi provider out-of-the-box per registrare gli eventi basati su domini applicazione, avvio e arresto, nonché la registrazione di tutte le eccezioni non gestite. Ciò consente di coprire alcuni degli scenari di base. Ad esempio, si supponga che l'applicazione genera un'eccezione, ma l'utente non salva l'errore e non è possibile riprodurre. Con la regola predefinita del registro eventi, sarà possibile raccogliere le informazioni di eccezione e lo stack per farsi un'idea del tipo di errore si è verificato. In alternativa, se l'applicazione sta perdendo lo stato della sessione, è possibile esaminare il registro eventi per determinare se il dominio applicazione è il riciclaggio, e la causa dell'arresto in primo luogo il dominio applicazione.

Inoltre, il sistema di monitoraggio dello stato è estensibile. Ad esempio, è possibile definire eventi Web personalizzati, attivarli all'interno dell'applicazione e quindi definire una regola per inviare le informazioni sull'evento a un provider come messaggi di posta elettronica. Ciò consente di collegare facilmente la strumentazione per il provider di monitoraggio dello stato. Ad esempio, è possibile generare un evento ogni volta che un ordine di elaborazione e impostare una regola che ogni evento viene inviato al database di SQL Server. È inoltre possibile generare un evento quando un utente non riesce ad accedere più volte in una riga e impostare l'evento per utilizzare i provider di posta elettronica.

La configurazione per gli eventi e il provider predefinito viene archiviata nel file Web. config globale. Il file Web. config globale memorizza tutte le impostazioni basate sul Web che sono state memorizzate nel file Machine. config in ASP.NET 1 x. Il file Web. config globale si trova nella seguente directory:
%windir%\Microsoft.Net\Framework\v2.0.*\config\Web.config
La sezione < healthMonitoring > del file Web. config globale fornisce predefinite le impostazioni di configurazione. È possibile eseguire l'override di queste impostazioni o configurare impostazioni personalizzate implementando la sezione < healthMonitoring > nel file Web. config dell'applicazione.

La sezione < healthMonitoring > del file Web. config globale contiene gli elementi seguenti:
  • provider Contiene i provider per il Visualizzatore eventi, WMI e SQL Server.
  • eventMappings Contiene i mapping per le varie classi di WebBase. È possibile estendere questo elenco se si genera la propria classe di evento. La generazione di una classe di evento offre maggiore granularità tramite l'invio di informazioni al provider. Ad esempio, è possibile configurare le eccezioni non gestite per l'invio a SQL Server, durante l'invio di eventi personalizzati alla posta elettronica.
  • regole Collega gli elementi eventMappings al provider.
  • il buffer Utilizzato con i provider di posta elettronica e di SQL Server per determinare la frequenza con cui il provider invia gli eventi.
Di seguito è riportato un esempio di codice dal file Web. config globale.
<healthMonitoring>
<!-- Event Log Provider being added. -->
<providers>
<add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
</providers>


<!-- Event mapping provides a friendly name to the events based on the WebBaseErrorEvent class. -->

<eventMappings>
<add name="All Errors" type="System.Web.Management.WebBaseErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
startEventCode="0" endEventCode="2147483647" />
</eventMappings>


<!-- Rule tying the "All Errors" event mapping to the EventLog Provider. -->
<rules>
<add name="All Errors Default" eventName="All Errors" provider="EventLogProvider"
profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00"
custom="" />
</rules>

</healthMonitoring>

Esempio di provider

In questo esempio di provider contiene i seguenti file:
  • ViewEvents.aspx il file : attiva l'evento di web personalizzato MyEvent nell'evento Page_Load e registro eventi pulsante fare clic su . Dispone di un controllo GridView che utilizza la connessione al database nel file Web. config all'elenco di eventi registrati da SQL Server.

    Assicurarsi di configurare la proprietà connectionString nel file Web. config in modo che punti al database ASPNETDB .
  • Il Web. config : ha tutti i provider di varie regole configurate e commento. Rimuovere la regola che si desidera verificare, quindi individuare le pagine aspx e ViewEvent.aspx per visualizzare l'aspetto dell'output.
  • MyEvent.cs il file si trova nella cartella App_Data. Nella pagina ViewEvents.aspx viene utilizzato per generare un evento personalizzato.
  • File di default. aspx , genera un'eccezione System. NullReferenceException per vedere ciò che registra un'eccezione non gestita.
  • EmailTemplateTest.aspx il file – utilizzato per l'esempio TemplateemailProvider. Il file code-behind per il file EmailTemplateTest.aspx con righe di codice, è possibile rimuovere il commento, che la pagina generare un'eccezione.

Come archiviare gli eventi nel Visualizzatore eventi

Come accennato in precedenza, il provider per la registrazione degli eventi nel visualizzatore è configurato nel file Web. config globale. Per impostazione predefinita, vengono registrati tutti gli eventi basati su WebBaseErrorEvent e WebFailureAuditEvent . È possibile aggiungere regole aggiuntive per registrare informazioni aggiuntive nel registro eventi. Ad esempio, se si desidera registrare tutti gli eventi (ad esempio, tutti gli eventi in base alle WebBaseEvent), è possibile aggiungere la seguente regola al file Web. config:
<healthMonitoring><rules>
<add name="All Events" eventName="All Events" provider="EventLogProvider" profile="Critical" />
</rules>
</healthMonitoring>
Questa regola dovrebbe collegare la mappa di eventi di Tutti gli eventi al provider di Log eventi. EventMapping sia il provider sono inclusi nel file Web. config globale. È quindi possibile utilizzare la pagina ViewEvents.aspx per attivare gli eventi generati da visualizzando la pagina. La pagina inoltre genera l'evento personalizzato MyEvent nell'evento Page_Load e fare clic su un pulsante .

Per visualizzare il tipo di dati generati, esplorare la pagina default. aspx. Verrà generata un'eccezione System. NullReferenceException e verrà registrato il seguente evento nel Visualizzatore: registrazione di eventi tutti gli eventi nel registro eventi genera anche eventi informativi. Evento riportato di seguito viene illustrato l'autorizzazione URL completata per la richiesta di pagina:

Come archiviare gli eventi di SQL Server

Questo metodo utilizza il database ASPNETDB , generato dallo strumento Aspnet_regsql.exe. Il provider predefinito utilizza la stringa di connessione LocalSqlServer, che utilizza un database basato su file nella cartella App_data o istanza SQLExpress locale di SQL Server. La stringa di connessione LocalSqlServer sia il SqlProvider sono configurati nel file Web. config globale.

La stringa di connessione LocalSqlServer nel file Web. config globale è simile alla seguente:
<connectionStrings><add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>

Se si desidera utilizzare un altro server di SQL Server, è necessario utilizzare lo strumento Aspnet_regsql.exe, reperibile nella cartella %windir%\Microsoft.Net\Framework\v2.0.*\Aspnet_regsql.exe. Utilizzare lo strumento Aspnet_regsql.exe per generare un database ASPNETDB personalizzato sul server SQL Server, quindi aggiungere la stringa di connessione al file config applicazioni e quindi aggiungere un provider utilizzando la nuova stringa di connessione. Dopo avere creato il database ASPNETDB creato, è necessario impostare una regola per collegare un eventMapping il sqlProvider.

Per configurare un database personalizzato, attenersi alla seguente procedura:
  1. Generare un database ASPNETDB .
    1. Eseguire aspnet_regsql.exe – W e analisi della procedura guidata.
    2. Eseguire il comando per automatizzare il processo: Aspnet_regsql – una w – S Di SQL Server - E.
  2. Aggiungere una stringa di connessione che punta al database, in modo che appaia come segue:
    <connectionStrings><add name="MYASPNETDB" connectionString="Server=<SQL Instance>;Integrated Security=SSPI;Database=aspnetdb"/>
    </connectionStrings>
  3. Aggiungere un provider per utilizzare la stringa di connessione MYASPNETDB, in modo che appaia come segue:
    <healthMonitoring><providers>
    <add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>
    </providers>
    </healthMonitoring>
Se si utilizza il valore predefinito SqlProvider o configura un provider, è necessario aggiungere una regola di collegamento al provider di mappa eventi. La seguente regola collega il nuovo provider appena creato alla mappa eventi Tutti gli eventi . Questa regola verrà registrare tutti gli eventi in base alle WebBaseEvent e li invia a di MySqlWebEventProvider che utilizzerà la stringa di connessione MYASPNETDB. Il codice seguente aggiunge una regola per creare un collegamento al provider di mappa eventi:
<healthMonitoring><rules>
<add name="All Events" eventName="All Events" provider="MySqlWebEventProvider" profile="Critical"/>
</rules>
</healthMonitoring>
Se si desidera inviare solo gli errori di SQL Server, è possibile aggiungere la seguente regola:
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

Modalità di inoltro eventi di WMI

È inoltre possibile inoltrare gli eventi a WMI. Il provider WMI viene configurato nel file Web. config globale per impostazione predefinita.

Esempio di codice seguente aggiunge una regola per inoltrare gli eventi a WMI:
<providers><add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
</providers>

È necessario aggiungere una regola per associare un eventMapping al provider e un'applicazione listener WMI per attendere gli eventi. Esempio di codice seguente aggiunge una regola per creare un collegamento alla mappa eventi Tutti gli eventi del provider WMI:
<rules><add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  />
</rules>

L'applicazione console di esempio SampleASPNET utilizza l'oggetto ManagementEventWatcher per monitorare gli eventi e li visualizza nella finestra della console.
Per SampleASPNET, attenersi alla seguente procedura:
  1. Avviare SampleASPNET.exe.
  2. Esplorare la pagina ViewEvents.aspx; In questo modo verranno visualizzati gli eventi elencati nell'applicazione console.
  3. Fare clic su registro eventi Button_Click. Verrà eseguito il postback della pagina e si vedrà registrati anche altri eventi.
Nota: Se si siano monitorando gli eventi in un computer remoto, l'applicazione in ascolto deve essere in esecuzione sul computer con un account con accesso amministrativo.

Modalità di inoltro eventi di posta elettronica

È inoltre possibile inoltrare gli eventi di posta elettronica. In questo modo è possibile ottenere informazioni sull'applicazione direttamente nella posta in arrivo (probabilmente sezioni). Prestare particolare attenzione le regole di eventi associare il provider di posta elettronica, come è possibile inviare inavvertitamente manualmente numerose informazioni che possono essere più adatto per SQL Server o il registro eventi.

Esistono due provider di posta elettronica, SimpleMailWebEventProvider e TemplatedMailWebEventProvider. Ognuno ha gli stessi attributi di configurazione, fatta eccezione per gli attributi sono disponibili solo con il TemplatedMailWebEventProvider "modello" e "detailedTemplateErrors".

Nota: Nessuno di questi provider di posta elettronica è configurato. È necessario aggiungerli al file Web. config.

La differenza principale tra questi provider di posta elettronica delle due è che SimpleMailWebEventProvider invia messaggi di posta elettronica in un modello generico che non può essere modificato. Il file Web. config di esempio aggiunge il provider di posta elettronica all'elenco dei provider configurati utilizzando la seguente regola:
<add name="mySimple-mailWebEventProvider" type="System.Web.Management.Simple-mailWebEventProvider"to="e-mail@foo.com" from="e-mail@foo.com" maxMessagesPerNotification="1" maxEventsPerMessage="10"
buffer="true" bufferMode="Critical Notification"
subjectPrefix="Web Events"/>

Associare il provider di posta elettronica alla mappa eventi Tutti gli eventi è inoltre aggiunta la seguente regola:
<add name="All Events" eventName="All Events" provider="mySimple-mailWebEventProvider" profile="Critical"/>
Il messaggio di posta elettronica è simile al seguente:
Oggetto: Notifica di eventi 12, parte 1: evento Web EventsMicrosoft.Samples.WebEvents.MyEvent ricevuto in /WebSite3

* * Informazioni sull'applicazione * *
---------------
Dominio applicazione: il livello di attendibilità di d047d537-9-127687218865923053: percorso virtuale dell'applicazione completo: percorso dell'applicazione WebSite3: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ computer nome: < nome computer >

* * Eventi * *
---------------
Codice evento: 100010
Messaggio di evento: Button1_Click
Ora evento: 8/16/2005 10:12:52 PM
Ora evento (UTC): 17/8/2005 3:12:52 AM
ID evento: sequenza di eventi 6e5cd252d6114a9e98687598dc6b5d50: 12 occorrenza evento: codice dettagliato dell'evento 5: 0

Dettagli evento personalizzati:

---------------
Di seguito è riportato un messaggio di posta elettronica che mostra un'eccezione non gestita:
Oggetto: Notifica di evento 7, parte 1: evento Web EventsSystem.Web.Management.WebRequestErrorEvent ricevuto in /WebSite3

* * Informazioni sull'applicazione * *
---------------
Dominio applicazione: il livello di attendibilità di d047d537-5-127687293149504903: percorso virtuale dell'applicazione completo: percorso dell'applicazione WebSite3: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ computer nome: < nome computer >

* * Eventi * *
---------------
Codice evento: 3005
Messaggio di evento: eccezione non gestita.
Ora evento: 17/8/2005 12:17:37 AM
Ora evento (UTC): 17/8/2005 5:17:37 AM
ID evento: sequenza di eventi 14b7f24102e140bbbae302d80e5a5f36: evento 7: codice dettagliato 1 evento: 0

Informazioni sul processo:
ID processo: 2292
Nome del processo: WebDev.WebServer.EXE
Nome account: dominio\utente.

Informazioni sull'eccezione:
Tipo di eccezione: System. NullReferenceException
Messaggio eccezione: non è impostato su un'istanza di un oggetto di riferimento a un oggetto.

Richiesta informazioni:
Richiesta di URL: http://localhost:2087/WebSite3/Default.aspx
Percorso richiesta: /WebSite3/Default.aspx
Indirizzo host utente: 127.0.0.1
Utente: dominio\utente.
Autenticazione: True
Tipo di autenticazione: NTLM
Nome account thread: dominio\utente.

Informazioni thread:
ID thread: 7
Nome account thread: dominio\utente.
È una rappresentazione: False
Analisi stack: in _Default.Page_Load (Object sender, EventArgs e) in c:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:line 15
in System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o oggetto, oggetto t, EventArgs e)
in System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e)
in System.Web.UI.Control.OnLoad (EventArgs e) in System.Web.UI.Control.LoadRecursive()
in System.WebUI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
TemplatedMailWebEventProvider consente di specificare una pagina ASPX come modello - è indovinato. L'output della pagina ASPX viene utilizzato nel corpo del messaggio di posta elettronica, consentendo di personalizzare l'aspetto dei dati che viene visualizzato.

L'applicazione di esempio utilizza il codice seguente per aggiungere TemplatedMailWebEventProvider al file Web. config e specificare la pagina EmailTemplateTest.aspx come modello. (La pagina EmailTemplateTest.aspx consente di scorrere gli eventi disponibili nel buffer e li visualizza in una tabella.)
<add name="myTemplatedMailWebEventProvider" type="System.Web.Management.TemplatedMailWebEventProvider"to="e-mail@foo.com" from="e-mail@foo.com " buffer="true"
bufferMode="Critical Notification" maxMessagesPerNotification="10" maxEventsPerMessage="10"
template="e-mailTemplateTest.aspx" detailedTemplateErrors="false" />

Il messaggio di posta elettronica è simile al seguente:
Oggetto: 1:10, parte 3, la notifica degli eventi gli eventi ricevuti in /WebSite3

Occorrenza origine ora codice dettaglio codice messaggio
4 System.Web.Security.UrlAuthorizationModule 17/8/2005 12:40:45 AM 4003 0 autorizzazione URL completata per la richiesta.
4, 8/17/2005 12:40:45 AM 4004 0 l'autorizzazione del File completata per la richiesta.
7 ASP. ViewEvents_aspx 17/8/2005 12:40:45 AM 100010 0 il caricamento di pagina di esempio di eventi Web
8 ASP. ViewEvents_aspx 17/8/2005 12:40:45 AM 100010 Button1_Click 0
SystemWeb.Security.UrlAuthorizationModule 5 17/8/2005 12:40:45 AM 4003 0 autorizzazione URL completata per la richiesta.
8 5/17/2005 12:40:45 AM 4004 0 l'autorizzazione del File completata per la richiesta.
9 ASP. ViewEvents_aspx 17/8/2005 12:40:45 AM 100010 0 il caricamento di pagina di esempio di eventi Web
10 ASP. ViewEvents_aspx 17/8/2005 12:40:45 AM 100010 Button1_Click 0
6 System.Web.Security.UrlAuthorizationModule 17/8/2005 12:40:46 AM 4003 0 autorizzazione URL completata per la richiesta.
6, 8/17/2005 12:40:46 AM 4004 0 l'autorizzazione del File completata per la richiesta.
In entrambi i casi, se l'attributo buffer è false, la posta elettronica conterrà un solo evento. Con il buffering è impostato su true, è inoltre necessario specificare un bufferMode, che indica la frequenza di svuotamento del buffer. Esistono alcuni bufferModes predefinito nel file Web. config globale.

Se detailedTemplateErrors = "true", quindi gli eventuali errori che si verificano quando si esegue il modello verranno inviati nel corpo del messaggio di posta elettronica. Se detailedTemplateErrors = "false", viene inviato un errore generico.

Un errore dettagliato generato da EmailTemplateTest.aspx è simile alla seguente:
Errore del server in ' / WebSite3' applicazione.

Si è verificata un'eccezione non gestita durante l'esecuzione della pagina modello utilizzata per creare questa notifica dell'evento. Gli eventi 1 che facevano parte di questo messaggio sono stati ignorati.

Descrizione: Eccezione non gestita durante l'esecuzione della richiesta web corrente. Controlla l'analisi dello stack per ulteriori informazioni sull'errore e ubicazione di origine nel codice.

Dettagli eccezione: System.Web.HttpException: lo stato sessione può essere utilizzato solo quando enableSessionState è impostato su true, in un file di configurazione o nella direttiva della pagina. Accertarsi inoltre che System.Web.SessionStateModule o un modulo di stato sessione personalizzato è incluso nella configurazione di < > \ < System. Web > \ < httpModules > sezione nella configurazione dell'applicazione.

File di origine: c:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs riga: 17

Analisi dello stack: [HttpException (0x80004005): lo stato sessione può essere utilizzato solo quando enableSessionState è impostato su true, in un file di configurazione o nella direttiva della pagina. Accertarsi inoltre che System.Web.SessionStateModule o un modulo di stato sessione personalizzato è incluso nella configurazione di < > \ < System. Web > \ < httpModules > sezione nella configurazione dell'applicazione.]
System.Web.UI.Page.get_Session() +146
e-mailTemplateTest.Page_Load(Object sender, EventArgs e) in c:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o oggetto, oggetto t, EventArgs e) + 13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) + 45
System.Web.UI.Control.OnLoad(EventArgs e) + 80
SystemWeb.UI.Control.LoadRecursive() +49
Dopo (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3749

[HttpUnhandledException (0x80004005): eccezione di tipo 'System.Web.HttpUnhandledException' generata.]
System.Web.UI.Page.HandleError(Exception e) +929
Dopo (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7864
System.Web.UI.Page.ProcessRequest (includeStagesBeforeAsyncPoint Boolean, Boolean includeStagesAfterAsyncPoint) +229
System.Web.UI.Page.ProcessRequest() + 12
System.Web.UI.Page.ProcessRequest(HttpContext context) + 80
System.Web.HttpServerUtility.ExecuteInternal (gestore IHttpHandler, TextWriter writer, preserveForm Boolean, percorso VirtualPath, filePath VirtualPath, stringa physPath, errore di eccezione, stringa queryStringOverride) +1012

[HttpException (0x80004005): errore esecuzione della richiesta figlio per /WebSite3/e-mailTemplateTest.aspx.]
System.Web.HttpServerUtility.ExecuteInternal (gestore IHttpHandler, TextWriter writer, preserveForm Boolean, percorso VirtualPath, filePath VirtualPath, stringa physPath, errore di eccezione, stringa queryStringOverride) +1525
System.Web.HttpServerUtility.Execute (TextWriter writer percorso String, Boolean preserveForm) +754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse (percorso di stringa, TextWriter writer, ErrorFormatterGenerator errorFormatterGenerator) +249
Se l'attributo è false e si verifica un errore, verrà visualizzato solo un messaggio di errore generico, che è simile:
Errore del server in ' / WebSite3' applicazione.

Si è verificata un'eccezione non gestita durante l'esecuzione della pagina modello utilizzata per creare questa notifica dell'evento. Gli 8 eventi che facevano parte di questo messaggio sono stati ignorati.

Descrizione: La configurazione corrente impedisce i dettagli dell'eccezione in questo messaggio. Aggiungere il "detailedTemplateErrors = true" attributo di configurazione del provider per attivare i dettagli delle eccezioni da dichiarare.
Nota: Per gli attributi relativi alla memorizzazione nel buffer, ogni svuotamento comporta una notifica. Se lo svuotamento contiene più eventi attributi maxEventsPerMessage , è possibile, la notifica verrà essere suddiviso in più messaggi di posta elettronica, ma sono tutte ancora considerate come la notifica stessa. Ad esempio, uno svuotamento genera 13 eventi, ma solo attributi maxEventsPerMessage consente cinque. Si otterranno tre messaggi di posta elettronica: primi due messaggi di posta elettronica conterrà ogni cinque eventi e il terzo messaggio contiene tre eventi.

Se sono presenti più messaggi di posta elettronica, è possibile maxMessagesPerNotification , alcuni eventi vengono ignorati. Ad esempio, se si utilizza la stessa attributi maxEventsPerMessage sopra riportata è impostare maxMessagesPerNotification a due, sarebbe solo ricevere due messaggi di posta elettronica. Gli eventi che sarebbero sul terzo messaggio di posta elettronica vengono eliminati. Eventuali cadute o il troncamento delle notifiche verrà indicato in uno dei messaggi di posta elettronica per il provider di posta elettronica semplice. Parte superiore del messaggio di posta elettronica verrà visualizzato quanto segue:
* * Avviso * *
---------------
Gli 10 eventi rimanente per il periodo di notifica verranno ignorati perché è stato superato il numero massimo di messaggi consentiti per ogni notifica. (ID avviso: 101)
Poiché si dispone di controllo del formato del messaggio di posta elettronica per il provider basato su modelli, è necessario cercare gocce/troncamento e stabilire se includere che nel messaggio di posta elettronica.

Nota: Provider di posta elettronica utilizzano System.Net.Mail, pertanto è necessario configurare System.Net.Mail nel file Web. config.

Per ulteriori informazioni sullo schema delle impostazioni di ASP.NET, visitare il seguente sito Web Microsoft:
healthMonitoring Element (ASP.NET Settings Schema)
http://msdn2.microsoft.com/library/2fwh2ss9(en-us,VS.80).aspx
Per ulteriori informazioni sul monitoraggio dello stato in ASP.NET 2.0, visitare il seguente sito Web Microsoft:
Come utilizzare il monitoraggio dello stato in ASP.NET 2.0
http://msdn2.microsoft.com/en-us/library/ms998306.aspx
Come sempre, non esitate a inviare idee sugli argomenti di cui si desidera che in futuro indirizzati colonne o nella Knowledge Base utilizzando Ask For It modulo.
Proprietà

ID articolo: 893664 - Ultima revisione: 30 gen 2017 - Revisione: 1

Microsoft ASP.NET 2.0

Feedback