Eventi Web in ASP.NET 2.0

Traduzione articoli Traduzione articoli
Identificativo articolo: 893664 - Visualizza i prodotti a cui si riferisce l?articolo.
Informazioni Beta
In questo articolo viene illustrata una versione Beta di Microsoft prodotto. Le informazioni contenute in questo articolo viene fornite come-è ed è soggetto a modifiche senza preavviso.

Non è disponibile alcun supporto formale Microsoft per questo prodotto Beta. Per informazioni su come ottenere supporto tecnico per una versione Beta, consultare la documentazione fornita con la versione Beta i file del prodotto o visitare il sito Web in cui è stato scaricato il rilasciare.
Supporto di ASP.NET
Per personalizzare questa colonna in base alle esigenze, vi invitiamo a inviare le proprie idee sugli argomenti di interesse e i problemi che si desidera visualizzare la soluzione nei futuri articoli della Knowledge Base e Support Voice. È possibile inviare idee e commenti e suggerimenti tramite il Richiedere i modulo. È inoltre disponibile un collegamento al modulo nella parte inferiore di questa colonna.
Espandi tutto | Chiudi tutto

In questa pagina

Introduzione

Benvenuti nella colonna di ASP.NET Support Voice. Mi chiamo Jerry Monaco. Sono stati con Microsoft oltre cinque anni e hanno impiegato per la maggior parte del personale ora incentrata su tecnologie correlate al Web, ad esempio FrontPage e il nuovo Tecnologie di SharePoint. È stata dedicata l'ultimo anno con ASP.NET come un supporto tecnico.

Questo mese nella colonna di Support Voice, illustrerò 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 principali nuovi servizi forniti in ASP.NET 2.0 è il Web Funzionalità di eventi fornito dal sistema di monitoraggio dello stato. Modificando il File Web. config, è possibile utilizzare il sistema di monitoraggio dello stato di registro non gestita le eccezioni, moduli scaduti, i ticket di autenticazione e tutti gli altri dati che si desidera l'accesso all'applicazione. In questa colonna verrà Introduzione all'utilizzo sul Web Gli eventi di funzionalità e rende disponibili anche esempi su come utilizzare i vari provider in ASP.NET 2.0.

La registrazione viene effettuata mediante la definizione di una regola che consente di associare gli eventi con un provider. La regola definisce il tipo di eventi che vengono inviati al provider. I seguenti eventi di base sono disponibili per l'utente Per accedere:
Riduci questa tabellaEspandi questa tabella
WebBaseEventLa classe di evento di base per tutti gli eventi. Contiene il proprietà obbligatorie per tutti gli eventi, ad esempio codice di evento, codice dettagliato dell'evento, il Data e ora è stato generato l'evento, numero di sequenza, il messaggio di evento, e dettagli dell'evento.
WebManagementEventL'evento di base di classe per gli eventi di gestione, ad esempio durata dell'applicazione richiesta, errori e gli eventi di controllo.
WebHeartbeatEventL'evento generato dall'applicazione regolari intervalli per l'acquisizione di informazioni sullo stato utile in fase di esecuzione.
WebAuditEventLa classe base per gli eventi di controllo della protezione, che vengono utilizzati Per contrassegnare le condizioni, ad esempio errori di autorizzazione, errore di decrittazione, ecc.
WebRequestEventLa classe base per tutti gli eventi informativi richiesta.
WebBaseErrorEventLa classe base per tutti gli eventi che indicano errore condizioni.
I tipi di provider disponibili consentono di inviare l'output di eventi in Visualizzatore eventi, SQL Server, Windows Management Instrumentation (WMI), e posta elettronica. I mapping di eventi e provider preconfigurato ridurre la quantità di operazioni necessarie per ottenere un output di eventi registrati.

ASP.NET 2.0 viene utilizzato l'evento Registrare provider out-di-the-box per registrare gli eventi in base a domini di applicazione a partire da e l'arresto, oltre a registrazione le eccezioni non gestite. Ciò offre una copertura alcuni degli scenari di base. Ad esempio, si supponga che l'applicazione genera un'eccezione, ma l'utente non viene salvato l'errore e non è possibile riprodurlo. Con la regola di Log eventi predefiniti, sarà in grado di raccogliere il informazioni di eccezione e lo stack per farsi un'idea di che tipo di errore si è verificato. O, se l'applicazione sta per perdere lo stato della sessione, vedere la Registro eventi per determinare se il dominio applicazione è riciclaggio e per questo motivo il dominio applicazione è stato arrestato in primo luogo.

Inoltre, la salute sistema di monitoraggio può essere esteso. Ad esempio, è possibile definire gli eventi Web personalizzati, attivazione all'interno dell'applicazione e quindi definire una regola per inviare l'evento informazioni a un provider, ad esempio messaggi di posta elettronica. Ciò consente di collegare facilmente la strumentazione per il provider di monitoraggio dello stato. Un altro esempio, è possibile generare un evento ogni volta che un ordine viene elaborato 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 il provider basati sulla posta elettronica.

La configurazione dei provider predefiniti e gli eventi viene archiviato nel file Web. config globale. Il file Web. config globale memorizza tutte le impostazioni con 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 sono disponibili impostazioni di configurazione predefinite. È possibile eseguire l'override di queste impostazioni o configurare impostazioni personalizzate mediante l'implementazione di <healthMonitoring> sezione del file Web. config dell'applicazione.

Il sezione <healthMonitoring>del file Web. config globale contiene il i seguenti elementi: </healthMonitoring></healthMonitoring></healthMonitoring>
  • 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. Generazione di una classe di evento offre una maggiore granularità su provider di a che inviare informazioni. Per Nell'esempio, è possibile configurare le eccezioni non gestite per l'invio a SQL Server, durante l'invio di eventi personalizzati alla posta elettronica.
  • regole Collegamenti eventMappings al provider.
  • memorizzazione nel buffer Utilizzato con i provider di posta elettronica e di SQL Server per determinare la frequenza Per cancellare gli eventi per il provider.
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 the file ? attiva l'evento di web personalizzato MyEvent nell'evento click del pulsante Page_Load e del registro eventi . Dispone di un controllo GridView che utilizza la connessione al database nel File Web. config per elencare gli eventi registrati da SQL Server.

    Assicurarsi di configurare la proprietà connectionString nel file Web. config in modo da puntare al database ASPNETDB .
  • Il file Web. config file ? ha tutti i provider e le regole configurate diverse e impostata come commento. Rimuovere il commento dalla regola che si desidera eseguire il test, quindi individuare il Pagine default. aspx e ViewEvent.aspx per visualizzare l'output sarà ad esempio.
  • MyEvent.cs the file ? che si trova nella cartella App_Data. Questo viene utilizzato il Pagina di ViewEvents.aspx per generare un evento personalizzato.
  • The default. aspx file ? genera un'eccezione System. NullReferenceException per vedere quali un gestita log delle eccezioni.
  • EmailTemplateTest.aspx the file ? utilizzato per l'esempio TemplateemailProvider. Il file code-behind per il file EmailTemplateTest.aspx sono presenti righe di codice è possibile rimuovere il commento, che causerà la pagina generare un'eccezione.

Modalità di memorizzazione degli eventi nel Visualizzatore eventi

Come detto in precedenza, il provider di eventi registrati nel Visualizzatore eventi viene configurato nel file Web. config globale. Per impostazione predefinita, vengono registrati tutti gli eventi in base a WebBaseErrorEvent e WebFailureAuditEvent . È possibile aggiungere ulteriori regole di registro aggiuntiva informazioni nel registro eventi. Ad esempio, se si desidera registrare tutti gli eventi (vale a dire, ogni evento 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 potrebbe collegarsi la mappa di eventi di Tutti gli eventi per il provider di Log eventi. Entrambi eventMapping e il provider sono inclusi nel file Web. config globale. È quindi possibile utilizzare il ViewEvents.aspx pagina per attivare gli eventi generati dall'esplorazione della pagina. Il Page inoltre genera l'evento personalizzato MyEvent nell'evento Page_Load e fare clic su un pulsante .

Per visualizzare il tipo di dati generati, esplorare il Pagina default. aspx. Verrà generata un'eccezione System. NullReferenceException e verrà registrato l'evento riportato di seguito nell'evento Visualizzatore:

Tipo di evento: avviso
Origine evento: ASP.NET 2.0.50601.0
Categoria evento: Evento Web
ID evento: 1311
Data: 16/08/2005
Durata: 9: 37: 44 PM
Utente: n/d
Computer: Nome del computer
Descrizione:
Codice evento: 3005
Messaggio di evento: si è verificata un'eccezione non gestita.
Ora dell'evento: 16/08/2005 9: 37: 44 PM
Ora dell'evento (UTC): 17/08/2005 2: 37: 44 AM
ID evento: 88838b4e73cf4a0d9a36ac737ff9d1a0
Sequenza di eventi: 39
Occorrenza dell'evento: 1
Codice dettagliato dell'evento: 0
Informazioni sull'applicazione: dominio applicazione: d047d537-2-127687190240098660
Livello di attendibilità: completo
Applicazione virtuale Percorso: /WebSite3
Percorso dell'applicazione: Fisico percorso
Nome del computer: Computer nome
Informazioni sul processo: ID di processo: 3776
Nome del processo: WebDev.WebServer.EXE
Nome account: dominio\utente.
Informazioni sull'eccezione: Tipo di eccezione: eccezione NullReferenceException
Messaggio dell'eccezione: riferimento a un oggetto non è impostata su un'istanza di un oggetto.
Richiesta di informazioni: URL richiesta: http://localhost:1698/WebSite3/default.aspx
Percorso della richiesta: /WebSite3/default.aspx
Indirizzo host utente: 127.0.0.1
Utente: Dominio\utente
È stato autenticato: True
Tipo di autenticazione: NTLM
Thread nome account: dominio\utente.
Informazioni thread:
ID thread: 8
Thread nome account: dominio\utente.
È una rappresentazione: False

Analisi dello stack: corrispondenza _Default.Page_Load (object sender, EventArgs e) in c:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:line 15
in System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, oggetto o, l'oggetto t, EventArgs e)
corrispondenza System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e)
in System.Web.UI.Control.OnLoad (EventArgs e) in System.Web.UI.Control.LoadRecursive()
corrispondenza ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Valore Boolean includeStagesAfterAsyncPoint)

Dettagli evento personalizzati: per ulteriori informazioni informazioni, vedere Guida in linea e supporto tecnico all'indirizzo http://support.microsoft.com.

Registrazione di tutti gli eventi nel registro eventi genera anche eventi informativi. L'evento riportato di seguito viene illustrato l'URL autorizzazione di successo per la richiesta della pagina:

Evento Tipo: informazioni
Origine evento: ASP.NET 2.0.50601.0
Categoria evento: Web Evento
ID evento: 1314
Data: 16/08/2005
Ora: 11: 04: 44 PM
Utente: N/D
Computer: Computer nome
Descrizione:
Codice evento: 4003
Messaggio di evento: URL autorizzazione per la richiesta è stata completata.
Ora dell'evento: 16/08/2005 11: 04: 44 PM
Ora dell'evento (UTC): 17/08/2005 4: 04: 44 AM
ID evento: fec3d73fba0247eaba425e5ccfada18e
Sequenza di eventi: 2
Occorrenza dell'evento: 1
Codice dettagliato dell'evento: 0
Informazioni sull'applicazione:
Dominio di applicazione: 1-d047d537-127687250829701433
Livello di attendibilità: completo
Applicazione virtuale Percorso: /WebSite3
Percorso dell'applicazione: C:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\
Nome del computer: Nome del computer
Informazioni sul processo:
Processo ID: 2292
Nome del processo: WebDev.WebServer.EXE
Nome account: Dominio\utente
Informazioni della richiesta:
URL della richiesta: http://localhost:2087/WebSite3/default.aspx
Percorso della richiesta: /WebSite3/default.aspx
Indirizzo host utente: 127.0.0.1
Utente: Dominio\utente
È stato autenticato: True
Tipo di autenticazione: NTLM
Thread nome account: dominio\utente.

Dettagli dell'evento personalizzato:
Per ulteriori informazioni informazioni, vedere Guida in linea e supporto tecnico all'indirizzo http://support.microsoft.com.

Come memorizzare gli eventi di SQL Server

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

Il LocalSqlServer stringa di connessione nel file Web. config globale sarà simile al 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, sarà necessario utilizzare il Lo strumento di Aspnet_regsql.exe, che può essere trovato nel cartella %Windir%\Microsoft.Net\Framework\v2.0.*\Aspnet_regsql.exe. Utilizzare il Strumento Aspnet_regsql.exe per generare un database ASPNETDB personalizzato sul server di SQL Server, quindi aggiungere la stringa di connessione per le applicazioni. config file e quindi aggiungere un provider utilizzando il nuovo stringa di connessione. Dopo avere creato il database ASPNETDB creato, sarà necessario impostare una regola per collegare un eventMapping per il sqlProvider.

Per configurare un database personalizzato attenersi alla seguente procedura:
  1. Consente di generare un database ASPNETDB .
    1. Eseguire ? w aspnet_regsql.exe e descrivere dettagliatamente il procedura guidata.
    2. Eseguire il comando per automatizzare il processo: Aspnet_regsql ?A ? s w SQL Server -E.
  2. Aggiungere una stringa di connessione che punta al database, quindi che appaia simile al seguente:
    <connectionStrings>
    	<add name="MYASPNETDB" connectionString="Server=<SQL Instance>;Integrated Security=SSPI;Database=aspnetdb"/>
    </connectionStrings>
  3. Aggiungere un provider per utilizzare in modo che la stringa di connessione MYASPNETDB che appaia simile al seguente:
    <healthMonitoring>
    	<providers>
    		<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>
    	</providers>
    </healthMonitoring>
Indica se utilizzare il valore predefinito SqlProvider o configurare il proprio provider, sarà necessario aggiungere una regola di collegamento al provider di una mappa di eventi. Il regola riportata di seguito il nuovo provider appena creato viene collegato alla mappa eventi Tutti gli eventi . Questa regola verrà registra tutti gli eventi in base a WebBaseEvent e inviarli al MySqlWebEventProvider che utilizzerà il Stringa di connessione MYASPNETDB. Il codice riportato di seguito consente di aggiungere una regola per collegare il provider a una 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 il regola seguente:
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

Modalità di inoltro degli eventi a WMI

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

Il esempio di codice riportato di seguito consente di aggiungere 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>
Sarà necessario aggiungere una regola per associare un eventMapping per la provider e anche un'applicazione listener WMI per attendere gli eventi. Il esempio di codice riportato di seguito consente di aggiungere una regola per creare un collegamento al provider WMI per la mappa di eventi di Tutti gli eventi :
<rules>
	<add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  />
</rules>
L'applicazione di console di esempio SampleASPNET utilizza l'oggetto ManagementEventWatcher per monitorare gli eventi e visualizzarli nella console finestra.
Per utilizzare SampleASPNET, attenersi alla seguente procedura:
  1. Avviare SampleASPNET.exe.
  2. Esplorare la pagina ViewEvents.aspx; In questo caso, verrà visualizzato eventi elencati nell'applicazione console.
  3. Fare clic Registro eventi Button_Click. La pagina eseguirà il postback e vedrai altri eventi registrati.
Riduci l'immagineEspandi l'immagine
893664
Nota. Se si esegue il monitoraggio degli eventi in un computer remoto, l'ascolto applicazione deve essere in esecuzione sullo stesso computer con un account con admin accesso.

Modalità di inoltro eventi di posta elettronica

È inoltre possibile inoltrare gli eventi di posta elettronica. In questo modo è possibile ottenere informazioni sull'applicazione direttamente nel (probabilmente eccedenti) Posta in arrivo. Prestare particolare attenzione le regole di evento per il quale che si esegue il mapping al provider di posta elettronica come è possibile inviare inavvertitamente personalmente molte informazioni che potrebbero essere migliori adatto per SQL Server o nel registro eventi.

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

Nota. Nessuno di questi provider di posta elettronica è configurato per l'utente. È possibile necessario aggiungerli al file Web. config.

La differenza principale tra Questi provider di posta elettronica delle due è che SimpleMailWebEventProvider invia messaggi di posta elettronica un modello generico che non può essere modificato. Aggiunge il file Web. config di esempio Questo provider di posta elettronica all'elenco dei provider configurati tramite i seguenti 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"/>
Per collegare i provider di posta elettronica per la mappa di eventi di Tutti gli eventi viene inoltre aggiunta la seguente regola:
<add name="All Events" eventName="All Events" provider="mySimple-mailWebEventProvider" profile="Critical"/>
Il messaggio di avviso di posta elettronica è simile al seguente:
Oggetto: Notifica di eventi 12, parte 1: Web Evento EventsMicrosoft.Samples.WebEvents.MyEvent ricevuto in / WebSite3

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

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

Evento personalizzato Dettagli:

---------------</computer>
Di seguito è un avviso tramite posta elettronica messaggio che indichi un'eccezione non gestita:
Oggetto: La notifica degli eventi 7, parte 1: Web Evento EventsSystem.Web.Management.WebRequestErrorEvent ricevuto in / WebSite3

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

** Eventi **
---------------
Evento codice: 3005
Messaggio di evento: si è verificata un'eccezione non gestita.
Evento ora: 17/08/2005 12: 17: 37 AM
Ora dell'evento (UTC): 17/08/2005 5: 17: 37 AM
ID evento: sequenza di eventi 14b7f24102e140bbbae302d80e5a5f36: evento 7 ricorrenza: codice dettagliato di 1 evento: 0

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

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

Informazioni della richiesta:
URL della richiesta: http://localhost:2087/WebSite3/default.aspx
Percorso della richiesta: /WebSite3/default.aspx
Indirizzo host utente: 127.0.0.1
Utente: Dominio\utente
È stato autenticato: True
Tipo di autenticazione: NTLM
Thread nome account: dominio\utente.

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

L'applicazione di esempio viene utilizzato il codice riportato di seguito per aggiungere TemplatedMailWebEventProvider per il Web. config file e specificare la pagina EmailTemplateTest.aspx come il modello. (Il EmailTemplateTest.aspx pagina scorre in ciclo 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 avviso di posta elettronica è simile al seguente:
Oggetto: Gli eventi ricevuti in 1: 10, parte 3, la notifica degli eventi / WebSite3

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

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

A generata dal EmailTemplateTest.aspx di errore dettagliato è simile al seguente:
Errore del server in ' / WebSite3' applicazione.

Una non gestita eccezione durante l'esecuzione della pagina del modello utilizzata per creare la notifica di evento. Sono stati gli eventi 1 che facevano parte di questo messaggio scartato.

Descrizione: Si è verificata un'eccezione non gestita durante il esecuzione della richiesta web corrente. Vedere l'analisi dello stack per ulteriori informazioni informazioni sull'errore e il punto di origine nel codice.

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

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

Analisi dello stack: [HttpException (0x80004005): possibile lo stato della sessione essere utilizzato solo quando enableSessionState è impostato su true, in una configurazione file o nella direttiva della pagina. Accertarsi inoltre che System.Web.SessionStateModule o un modulo di stato sessione personalizzato è incluso in il <configuration>\<system.web>\<httpModules> sezione i configurazione dell'applicazione.]
System.Web.UI.Page.get_Session() +146
e-mailTemplateTest.Page_Load(Object sender, EventArgs e) in c:\Documents e Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr FP, oggetto o, 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
ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3749

[HttpUnhandledException (0x80004005): eccezione di tipo È stato 'System.Web.HttpUnhandledException' eccezione generata.]
System.Web.UI.Page.HandleError (Exception e) +929
ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7864
System.Web.UI.Page.ProcessRequest (Boolean includeStagesBeforeAsyncPoint, 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, Boolean preserveForm percorso VirtualPath, VirtualPath filePath, String physPath, errore di eccezione, String queryStringOverride) +1012

[HttpException (0x80004005): errore durante l'esecuzione richiesta figlio per / E/WebSite3-mailTemplateTest.aspx.]
System.Web.HttpServerUtility.ExecuteInternal (interfaccia IHttpHandler gestore, TextWriter writer, preserveForm booleano, percorso VirtualPath, VirtualPath filePath, String physPath, errore di eccezione, String queryStringOverride) +1525
System.Web.HttpServerUtility.Execute (percorso di stringa, TextWriter writer, Boolean preserveForm) +754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse (stringa percorso, TextWriter writer, ErrorFormatterGenerator errorFormatterGenerator) +249</httpModules></system.web></configuration></httpModules></system.web></configuration>
Se l'attributo è false e si è verificato un errore, verrà solo ottenere un messaggio di errore generico che presenta un aspetto simile al seguente:
Server Errore in ' / WebSite3' applicazione.

Si è verificata un'eccezione non gestita durante l'esecuzione della pagina del modello utilizzata per creare questo evento notifica. Sono stati gli 8 eventi che facevano parte di questo messaggio scartato.

Descrizione: La configurazione corrente impedisce il Dettagli eccezione sia incluso nel messaggio. Aggiungere il "detailedTemplateErrors = true" alla configurazione del provider per consentire di attributo dettagli dell'eccezione da dichiarare.
Nota. Per gli attributi correlati al buffer, ogni svuotamento comporta un notifica. Se lo svuotamento contiene più eventi maxEventsPerMessage , è possibile, la notifica verrà suddiviso in più messaggi di posta elettronica, ma sono tutte ancora considerate come la notifica stessa. Ad esempio, un svuotamento non genera 13 eventi ma maxEventsPerMessage consente solo cinque. Si otterranno tre messaggi di posta elettronica: le prime due messaggi di posta elettronica conterrà ogni cinque eventi e posta elettronica di terza conterrà tre eventi.

Se sono presenti ulteriori messaggi di posta elettronica, è possibile maxMessagesPerNotification , alcuni eventi vengono ignorati. Ad esempio, se si imposta maxMessagesPerNotification a due e si utilizza la stessa maxEventsPerMessage come illustrato in precedenza, si riceveranno solo due messaggi di posta elettronica. Gli eventi che sarebbe sul terzo posta elettronica vengono eliminati. Eventuali cadute o il troncamento di le notifiche verranno indicate in uno dei messaggi di posta elettronica per il provider di posta elettronica semplice. La parte superiore del messaggio di posta elettronica verrà visualizzato il seguente:
** Avvisi **
---------------
Gli 10 eventi rimanente per questo periodo di notifica verrà ignorato poiché il numero massimo di messaggi consentite per ogni notifica è stato superato. (ID avviso: 101)
Poiché è ha il controllo del formato del messaggio di posta elettronica per il provider basato su modelli, è necessario Per cercare gocce/troncamento e determinare se si desidera includere in messaggio di posta elettronica.

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

Per ulteriori informazioni informazioni sullo schema delle impostazioni ASP.NET, visitare il sito Web Microsoft sito:
healthMonitoring Element (ASP.NET Settings Schema)
http://msdn2.microsoft.com/library/2fwh2ss9(en-us,VS.80).aspx
Per ulteriori informazioni sul monitoraggio dello stato di ASP.NET 2.0, visitare il seguente sito Web Microsoft:
Come utilizzare il monitoraggio dello stato di ASP.NET 2.0
http://msdn2.microsoft.com/en-us/library/ms998306.aspx
Come sempre, non esitate a inviare idee sugli argomenti desiderati trattati nei prossimi articoli o nella Knowledge Base utilizzando il Richiedere i modulo.

Proprietà

Identificativo articolo: 893664 - Ultima modifica: venerdì 30 novembre 2012 - Revisione: 5.0
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 2.0
Chiavi: 
kbhowto kbasp kbmt KB893664 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 893664
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Dichiarazione di non responsabilità per articoli della Microsoft Knowledge Base su prodotti non più supportati
Questo articolo è stato scritto sui prodotti per cui Microsoft non offre più supporto. L?articolo, quindi, viene offerto ?così come è? e non verrà più aggiornato.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com