Webereignisse in ASP.NET 2.0

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 893664 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Beta-Informationen
Dieser Artikel beschreibt eine Betaversion eines Microsoft Produkt. Die Informationen in diesem Artikel wird ohne Gewähr-ist und unterliegt ohne vorherige Ankündigung ändern.

Keine formelle Produktunterstützung steht aus Microsoft für diese Betaversion. Informationen dazu, wie Sie Unterstützung zu erhalten eine Beta-Version finden Sie unter die in der Betaversion enthaltene Dokumentation Produktdateien oder Kontrollkästchen der Website, in dem Sie heruntergeladen haben, die Release.
ASP.NET Support Voice-Kolumne
Um diese Kolumne optimal an Ihre Anforderungen anpassen, wir Laden Sie Ihre Ideen zu Themen vorlegen, die Sie interessieren, und Probleme, die Sie anzeigen möchten behoben in zukünftigen Knowledge Base-Artikeln und Support Voice-Kolumnen. Sie können Ihre Ideen und Ihr Feedback senden, mit der Danach Fragen Formular. Es ist auch eine Verknüpfung zu der Form am Ende dieser Kolumne.
Alles erweitern | Alles schließen

Auf dieser Seite

Einführung

Willkommen Sie bei ASP.NET Support Voice-Kolumne! Mein Name ist Jerry Orman. Ich seit 5 Jahren für Microsoft und hat die meisten meiner Zeit konzentriert sich auf Web-Technologien wie z. B. FrontPage und dem neuen SharePoint-Technologien. Ich habe das letzte Jahr arbeiten mit ASP.NET als ein Support-Engineer.

Diesen Monat in der Support Voice-Kolumne werde ich Beschreiben Sie die neue Webereignisse-Funktion zur Verfügung gestellt, in der bevorstehenden Veröffentlichung von ASP.NET 2.0.

Webereignisse-Feature in ASP.NET 2.0

Eine der wichtigsten neuen Dienste in ASP.NET 2.0 ist im Web Ereignisse von der Systemüberwachung bereitgestellte Feature. Durch Ändern der Web.config-Datei können Sie die Systemüberwachung in Protokoll nicht behandelt Ausnahmen, abgelaufene Formulare, Authentifizierungstickets und anderen Daten möchten Sie in der Anwendung protokolliert. Diese Spalte erhalten Sie im Web, seitdem Ereignisse verfügen, und liefert auch Beispiele zur Verwendung mit den verschiedenen Anbieter in ASP.NET 2.0.

Protokollierung erfolgt durch Definieren einer Regel die Ereignisse mit einem Anbieter verknüpft. Die Regel definiert die Art der Ereignisse an den Provider gesendet wurden. Die folgenden Basis-Ereignisse stehen für Sie Anmeldung:
Tabelle minimierenTabelle vergrößern
WebBaseEventDie Klasse für alle Ereignisse. Enthält die erforderliche Eigenschaften für alle Ereignisse wie z. B. Ereigniscode, Ereignis-Detailcode, der Datum und Uhrzeit das Ereignis ausgelöst wurde, laufende Nummer, die Ereignismeldung und Ereignisdetails.
WebManagementEventDas Basisereignis Klasse z. B. für Verwaltungs-Ereignisse Lebensdauer der Anwendung, Anforderung, Fehler und Überwachungsereignisse.
WebHeartbeatEventDas Ereignis, das von der Anwendung in regulären erstellt Intervalle, nützliche Runtime Statusinformationen zu erfassen.
WebAuditEventDie Basisklasse für Ereignisse der Sicherheitsüberwachung, die verwendet werden Markieren Sie die Bedingungen wie z. B. Autorisierungsfehler, Fehler beim Entschlüsseln, usw.
WebRequestEventDie Basisklasse für alle informative Ereignisse.
WebBaseErrorEventDie Basisklasse für alle Ereignisse, der angibt, Fehler Bedingungen.
Die Typen der verfügbaren Anbieter können Sie Ereignis Ausgabe senden zur Ereignisanzeige, SQL Server-Windows-Verwaltungsinstrumentation (WMI) und e-Mail-Nachrichten. Die vorkonfigurierten Anbietern und Ereigniszuordnungen reduzieren Datenmenge erforderlichen protokolliert Ereignis-Ausgabe zu arbeiten.

ASP.NET 2.0 mithilfe des-Ereignisses Protokoll Anbieter Out-of-the-Box zum Protokollieren von Ereignissen, die auf der Grundlage von Anwendungsdomänen ab und beenden, sowie eine Protokollierung unbehandelte Ausnahmen. Dadurch werden abdecken Einige der grundlegenden Szenarien. Z. B. angenommen, die Ihre Anwendung eine Ausnahme auslöst, aber der Benutzer nicht die Fehler beim Speichern und Sie kann nicht Reproduzieren Sie es. Mit der Standardregel Ereignisprotokoll, Sie wären sammeln die Ausnahme und Stapel Informationen besseren weiß, welche Art von Fehler abrufen ist aufgetreten. Oder, wenn Ihre Anwendung Sitzungszustand verlieren, suchen Sie in der Kapazität des Ereignisprotokolls zu bestimmen, ob die Anwendungsdomäne recycling ist und warum die Anwendungsdomäne beendet in erster Linie.

Darüber hinaus die Gesundheit Monitoring-System ist erweiterbar. Beispielsweise können Sie benutzerdefinierte Webereignisse definieren, Diese innerhalb der Anwendung ausgelöst werden, und definieren Sie eine Regel um das Ereignis zu senden Informationen für einen Anbieter wie Ihre e-Mail-Nachrichten. Dadurch können Sie problemlos binden die Instrumentation auf die Systemüberwachungsanbieter. Als weiteres Beispiel Sie konnte ein Ereignis jedes Mal eine Bestellung verarbeitet und richten Sie eine Regel ausgelöst, Sendet jedes Ereignis an die SQL Server-Datenbank. Sie können auch ein Ereignis ausgelöst wenn ein Benutzer nicht mehrere Male hintereinander anmelden, und richten Sie das Ereignis zu verwenden, die e-Mail-basierte Provider.

Die Konfiguration für die Standardanbieter und Ereignisse in der globalen Web.config-Datei gespeichert ist. Globale Web.config-Datei Speichert alle Web-basierte Einstellungen, die in der Datei Machine.config gespeichert wurden in ASP.NET 1 X. Globale Web.config-Datei befindet sich in der folgenden Verzeichnis:
%windir%\Microsoft.NET\Framework\v2.0.*\config\Web.config
Die <healthMonitoring>-Abschnitt der globalen Web.config-Datei Stellt Konfigurationseinstellungen bereit. Sie können diese Einstellungen überschreiben oder Konfigurieren Sie Ihre eigenen Einstellungen durch die Implementierung der <healthMonitoring> Abschnitt in der Datei Web.config für Ihre Anwendung.

Die <healthMonitoring>-Abschnitt der globalen Web.config-Datei enthält die folgende Elemente: </healthMonitoring></healthMonitoring></healthMonitoring>
  • Anbieter Enthält Anbieter richten Sie für die Ereignisanzeige, WMI und SQL Server.
  • eventMappings Enthält Zuordnungen für die verschiedenen WebBase-Klassen. Sie können erweitern Diese Liste, wenn Sie Ihre eigenen Event-Klasse generieren. Generieren von Ihren eigenen Event-Klasse Gibt Ihnen eine feinere Granularität über die Anbieter, die, denen Sie Informationen zu senden. Für Beispiel, könnten Sie nicht behandelte Ausnahmen an SQL Server gesendet werden konfigurieren, Beim Senden Ihre eigenen benutzerdefinierten Ereignisse auf e-mail.
  • Regeln Verknüpft die EventMappings mit dem Anbieter.
  • Pufferung Mit SQL Server und e-Mail-Anbieter verwendet, um ermitteln, wie oft die Ereignisse an den Provider zu leeren.
Im folgenden wird ein Codebeispiel aus der globalen Web.config-Datei.
<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>

Anbieterbeispiel

In diesem Providerbeispiel enthält die folgenden Dateien:
  • Die ViewEvents.aspx-Datei ? löst die benutzerdefinierte Webereignis MyEvent in Page_Load und Protokollereignis Schaltfläche click -Ereignis. Hat eine GridView, die die Datenbankverbindung in verwendet die Web.config-Datei, die in SQL Server protokolliert Ereignisse auflisten.

    Achten Sie darauf Konfigurieren Sie die ConnectionString in der Web.config-Datei, zeigen Sie auf Ihre Datenbank ASPNETDB .
  • Die Web.config-Datei ? verfügt über die verschiedenen Anbieter und Regeln konfiguriert und auskommentiert. Kommentieren Sie die Regel, die Sie testen, und klicken Sie dann durchsuchen möchten die "Default.aspx" und ViewEvent.aspx Seiten zu sehen, wie die Ausgabe angezeigt wie.
  • Die MyEvent.cs-Datei ? befindet sich im Ordner App_Data. Dies wird verwendet, der ViewEvents.aspx-Seite ein benutzerdefiniertes Ereignis ausgelöst.
  • Die Default.aspx-Datei ? löst eine System.NullReferenceException, was ein nicht behandeltes finden Sie unter Ausnahme-Protokolle.
  • Die EmailTemplateTest.aspx-Datei ? verwendet für die TemplateemailProvider-Beispiel. Der Code-Behind-Datei für die Datei EmailTemplateTest.aspx Codezeilen hat Sie können die Auskommentierung, die führt die Seite eine Ausnahme ausgelöst.

Wie speichert alle Ereignisse in der Ereignisanzeige

Wie ich erwähnt, den Anbieter zum Protokollieren von Ereignissen in bereits der Ereignis-Viewer ist für Sie in der globalen Web.config-Datei konfiguriert. In der Standardeinstellung alle Ereignisse, die auf der Grundlage von WebBaseErrorEvent und WebFailureAuditEvent werden protokolliert. Sie können zusätzliche Regeln Protokoll zusätzliche hinzufügen. Informationen in das Ereignisprotokoll. Wenn Sie alle Ereignisse (d. h., jedes Ereignis auf der Grundlage von WebBaseEvent) protokollieren wollte, könnte Sie die folgende Regel der Datei Web.config hinzufügen:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="EventLogProvider" profile="Critical"  />
	</rules>
</healthMonitoring>
Diese Regel würde die Ereigniszuordnung Alle Ereignisse mit dem Event Log-Anbieter verknüpfen. Beide EventMapping und die Anbieter sind in der globalen Web.config-Datei enthalten. Anschließend können Sie die ViewEvents.aspx-Seite, um die Ereignisse generiert durch Durchsuchen der Seite ausgelöst. Die Seite wird auch in das Ereignis Page_Load und eine Schaltfläche klicken Sie auf das benutzerdefinierte MyEvent -Ereignis ausgelöst.

Durchsuchen, um zu sehen, den Typ der Daten generiert, die Seite "default.aspx". Eine " System.NullReferenceException "-Ausnahme wird ausgelöst, und das folgende Ereignis wird in das Ereignis protokolliert werden Viewer:

Ereignistyp: Warnung
Ereignisquelle: ASP.NET 2.0.50601.0
Ereigniskategorie: Webereignis
Ereignis-ID: 1311
Datum: 8/16/2005
Uhrzeit: 9: 37: 44 PM
Benutzer: n/v
Computer: Computername
Beschreibung:
Ereigniscode: 3005
Ereignismeldung: eine nicht behandelte Ausnahme ist aufgetreten.
Ereigniszeit: 8/16/2005 9: 37: 44 PM
Uhrzeit des Ereignisses (UTC): 17/8/2005 2: 37: 44 AM
Ereignis-ID: 88838b4e73cf4a0d9a36ac737ff9d1a0
Ereignisreihenfolge: 39
Ereignis auftreten: 1
Ereignisdetailcode: 0
Anwendungsinformationen: Anwendungsdomäne: d047d537-2-127687190240098660
Vertrauensstufe: vollständige
Virtuelle Anwendung Pfad: /WebSite3
Pfad der Anwendung: Physische Pfad
Computername: Computer Name
Informationen zu verarbeiten: Prozess-ID: 3776
Prozessname: WebDev.WebServer.EXE
Kontoname: Domäne\Benutzer
Informationen zur Ausnahme: Ausnahmetyp: NullReferenceException
Ausnahmemeldung:-Objektverweis nicht auf eine Instanz eines Objekts festgelegt.
Anfordern von Informationen: Anforderungs-URL: http://localhost:1698/WebSite3/default.aspx
Pfad der Anforderung: /WebSite3/default.aspx
Benutzerhostadresse: 127.0.0.1
Benutzer: Domäne\Benutzer
Ist authentifiziert: True
Authentifizierungstyp: NTLM
Thread Kontoname: Domäne\Benutzer
Threadinformationen:
Thread-ID: 8
Thread Kontoname: Domäne\Benutzer
Wechselt Identität: False

Stack Trace: an _DEFAULT.Page_Load (Object Sender, eventargse) in c:\Documents und Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:Line 15
Bei System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Objekt o, Objekt t, eventargse)
Bei System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object Sender, Eventargse)
Bei System.Web.UI.Control.OnLoad (eventargse) an System.Web.UI.Control.LoadRecursive()
Bei System.Web.UI.Page.ProcessRequestMain (Boolean IncludeStagesBeforeAsyncPoint, Boolean IncludeStagesAfterAsyncPoint)

Benutzerdefiniertes Ereignis Informationen: Weitere Informationen Informationen hierzu finden Sie unter Hilfe und Support Center unter http://support.Microsoft.com.

Protokolliert alle Ereignisse in das Ereignisprotokoll generiert auch Informationsereignisse. Das folgende Ereignis zeigt den URL an Autorisierung für die Seitenanforderung nachfolgende:

Ereignis Typ: Informationen
Ereignisquelle: ASP.NET 2.0.50601.0
Ereigniskategorie: Web Ereignis
Ereignis-ID: 1314
Datum: 8/16/2005
Time: 11: 04: 44 PM
Benutzer: N/V
Computer: Computer Name
Beschreibung:
Ereigniscode: 4003
Ereignismeldung: URL Autorisierung für die Anforderung erfolgreich.
Ereigniszeit: 8/16/2005 11: 04: 44 PM
Uhrzeit des Ereignisses (UTC): 17/8/2005 4: 04: 44 AM
Ereignis-ID: fec3d73fba0247eaba425e5ccfada18e
Ereignissequenz: 2
Ereignis auftreten: 1
Ereignisdetailcode: 0
Anwendungsinformationen:
Anwendungsdomäne: d047d537-1-127687250829701433
Vertrauensstufe: vollständige
Virtuelle Anwendung Pfad: /WebSite3
Anwendungspfad: C:\Documents und Settings\user\Desktop\WebEvents\WebSite3\WebSite3\
Computername: Computername
Prozessinformationen:
Prozess ID: 2292
Prozessname: WebDev.WebServer.EXE
Kontoname: Domäne\Benutzer
Anfordern von Informationen:
Anforderungs-URL: http://localhost:2087/WebSite3/default.aspx
Pfad der Anforderung: /WebSite3/default.aspx
Benutzerhostadresse: 127.0.0.1
Benutzer: Domäne\Benutzer
Ist authentifiziert: True
Authentifizierungstyp: NTLM
Thread Kontoname: Domäne\Benutzer

Benutzerdefinierte Ereignisdetails:
Weitere Informationen Informationen hierzu finden Sie unter Hilfe und Support Center unter http://support.Microsoft.com.

Wie Sie Ereignisse in SQL Server speichern

Diese Methode verwendet die Datenbank ASPNETDB , die durch das Tool Aspnet_regsql.exe generiert wird. Die Standardanbieter verwendet die Verbindungszeichenfolge LocalSqlServer, die entweder verwendet ein Datei-basierten Datenbank im App_data-Ordner oder der lokalen SQLExpress-Instanz von SQL Server. Die Verbindungszeichenfolge LocalSqlServer und SqlProvider sind in der globalen Web.config-Datei konfiguriert.

Die LocalSqlServer Verbindungszeichenfolge in der globalen Web.config-Datei sieht folgendermaßen aus:
<connectionStrings>
	<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>
Wenn Sie einen anderen SQL Server-Server verwenden möchten, müssen Sie verwenden die Tool Aspnet_regsql.exe aus, die sich in der %windir%\Microsoft.NET\Framework\v2.0.*\Aspnet_regsql.exe-Ordner. Verwendung der Tool Aspnet_regsql.exe zum Erstellen einer benutzerdefinierten Datenbank ASPNETDB auf dem SQL Server-Server sowie das anschließende Hinzufügen der Verbindungszeichenfolge in Ihren Anwendungen .config-Datei, und fügen Sie einen Anbieter mit dem neuen Verbindungszeichenfolge. Sobald Sie die Datenbank ASPNETDB erstellt haben, müssen Sie einen Regelsatz zu verknüpfen ein EventMapping zu SqlProvider.

Zum Konfigurieren einer benutzerdefinierten Datenbank Gehen Sie folgendermaßen vor:
  1. Generieren Sie eine Datenbank ASPNETDB .
    1. Führen Sie aspnet_regsql.exe ? w, und gehen Sie durch die Assistenten.
    2. Führen Sie den Befehl, den Prozess automatisieren: Aspnet_regsql ? A w ? s SQL Server -E.
  2. Fügen Sie eine Verbindungszeichenfolge, die so auf die Datenbank verweist dass sie wie folgt aussieht:
    <connectionStrings>
    	<add name="MYASPNETDB" connectionString="Server=<SQL Instance>;Integrated Security=SSPI;Database=aspnetdb"/>
    </connectionStrings>
  3. Hinzufügen eines Anbieters, um so verwenden Sie die Verbindungszeichenfolge MYASPNETDB dass sie wie folgt aussieht:
    <healthMonitoring>
    	<providers>
    		<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>
    	</providers>
    </healthMonitoring>
Gibt an, ob Sie verwenden Sie die Standardeinstellung SqlProvider oder konfigurieren Ihre eigenen Anbieter, müssen Sie eine Regel verknüpfen den Anbieter mit einem Event-Zuordnung hinzufügen. Die folgende Regel verknüpft den neuen Provider, den Sie soeben erstellt haben, mit der Ereigniszuordnung Alle Ereignisse . Diese Regel wird alle Ereignisse, die auf der Grundlage von WebBaseEvent protokollieren und senden Sie sie an der MySqlWebEventProvider, die verwendet wird die MYASPNETDB-Verbindungszeichenfolge. Der folgende Code fügt eine Regel zum Verknüpfen der eine Event-Zuordnung-Anbieter:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="MySqlWebEventProvider" profile="Critical"/>
	</rules>
</healthMonitoring>
Wenn Sie nur Fehler an SQL Server gesendet werden beispielsweise, könnten Sie hinzufügen die folgende Regel:
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

Gewusst wie: Weiterleiten von Ereignissen an WMI

Sie können auch der Weiterleiten von Ereignissen an WMI. Der WMI-Anbieter ist für Sie konfiguriert in der globalen Web.config-Datei standardmäßig.

Die folgenden Codebeispiel wird eine Regel zum Weiterleiten der Ereignisse an WMI hinzugefügt:
<providers>
	<add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
Sie müssen eine Regel zum Zuordnen einer EventMapping zu Hinzufügen der Anbieter, und auch eine WMI-Listener-Anwendung, für die Ereignisse zu überwachen. Die folgende Codebeispiel fügt eine Regel um den WMI-Anbieter die Ereigniszuordnung Alle Ereignisse zu verknüpfen:
<rules>
	<add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  />
</rules>
Die Beispiel-Konsolenanwendung SampleASPNET verwendet das ManagementEventWatcher -Objekt für Ereignisse überwachen und in der Konsole anzeigen Fenster.
Um SampleASPNET zu verwenden, gehen Sie folgendermaßen vor:
  1. Starten Sie SampleASPNET.exe.
  2. Durchsuchen Sie die Seite ViewEvents.aspx; Wenn Sie dies tun, sehen Sie in der Konsolenanwendung aufgeführten Ereignisse.
  3. Klicken Sie auf Protokollieren von Ereignis Button_Click. Die Seite bucht zurück, und sehen Sie die zusätzlichen Ereignisse ebenfalls protokolliert.
Bild minimierenBild vergrößern
893664
Hinweis Wenn Sie Ereignisse auf einem Remotecomputer, der Überwachung Überwachung Anwendung muss auf diesem Computer unter einem Konto mit Admin ausgeführt werden Zugriff.

Wie Sie Ereignisse an e-mail weiterleiten

Sie können auch Ereignisse an e-mail weiterleiten. Dies würden Sie abrufen können Informationen über die Anwendung direkt in Ihre (wahrscheinlich überlaufende) Posteingang. Seien Sie vorsichtig, welches Ereignis, die Sie Regeln als Ihren e-Mail-Anbieter zuordnen Sie können versehentlich selbst eine Vielzahl von Informationen senden, die möglicherweise besser geeignet für SQL Server oder im Ereignisprotokoll.

Es sind zwei e-Mail- Anbieter, SimpleMailWebEventProvider und TemplatedMailWebEventProvider. Jede verfügt über die gleiche Konfigurationsattribute, mit Ausnahme von "Template" und "DetailedTemplateErrors" Attribute, die nur auf verfügbar sind die TemplatedMailWebEventProvider.

Hinweis Weder diese e-Mail-Anbieter ist für Sie konfiguriert. Sie werden müssen sie der Datei Web.config hinzufügen.

Der Hauptunterschied zwischen Diese zwei e-Mail-Anbieter ist, dass SimpleMailWebEventProvider-e-Mails sendet eine generische Vorlage, die nicht geändert werden kann. Fügt die Web.config-Beispieldatei Diese E-mail-Dienstanbieter zur Liste der konfigurierten Anbieter mithilfe der Folgendes Regel:
<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"/>
Die folgende Regel wird auch hinzugefügt, um die e-Mail-Anbieter die Ereigniszuordnung Alle Ereignisse zu binden:
<add name="All Events" eventName="All Events" provider="mySimple-mailWebEventProvider" profile="Critical"/>
Die e-Mail-Warnmeldung ist den folgenden ähneln:
Betreff: Ereignisbenachrichtigung 12, Teil 1: Web EventsMicrosoft.Samples.WebEvents.MyEvent-Ereignis empfangen / WebSite3

** Anwendungsinformationen **
---------------
Anwendungsdomäne: d047d537-9-127687218865923053 Vertrauensstufe: vollständige virtuelle Anwendungspfad: WebSite3-Anwendungspfad: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ Maschine Name:<computer name="">

** Ereignisse **
---------------
Ereignis Code: 100010
Ereignismeldung: Button1_Click
Ereigniszeit: 8/16/2005 10: 12: 52 PM
Uhrzeit des Ereignisses (UTC): 17/8/2005 12: 52 Uhr
Ereignis-ID: 6e5cd252d6114a9e98687598dc6b5d50-Ereignis-Sequenz: 12 Ereignis vorkommen: 5-Ereignis Detailcode, der: 0

Benutzerdefiniertes Ereignis Details:

---------------</computer>
Der folgende Code ist eine e-Mail-Warnung Nachricht, die eine nicht behandelte Ausnahme zeigt:
Betreff: Ereignisbenachrichtigung 7, Teil 1: Web EventsSystem.Web.Management.WebRequestErrorEvent-Ereignis empfangen / WebSite3

** Anwendungsinformationen **
---------------
Anwendungsdomäne: d047d537-5-127687293149504903 Vertrauensstufe: vollständige virtuelle Anwendungspfad: WebSite3-Anwendungspfad: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ Maschine Name:<computer name="">

** Ereignisse **
---------------
Ereignis Code: 3005
Ereignismeldung: eine nicht behandelte Ausnahme ist aufgetreten.
Ereignis Uhrzeit: 17/8/2005 12: 17: 37 Uhr
Uhrzeit des Ereignisses (UTC): 17/8/2005 5: 17: 37 UHR
Ereignis-ID: Ereignisreihenfolge 14b7f24102e140bbbae302d80e5a5f36: 7-Ereignis vorkommen: 1 Ereignis detail Code: 0

Prozessinformationen:
Prozess ID: 2292
Prozessname: WebDev.WebServer.EXE
Kontoname: Domäne\Benutzer

Informationen zur Ausnahme:
Ausnahmetyp: System.NullReferenceException
Ausnahmemeldung: Objektverweis nicht festgelegt um eine Instanz eines Objekts.

Anfordern von Informationen:
Anforderungs-URL: http://localhost:2087/WebSite3/default.aspx
Pfad der Anforderung: /WebSite3/default.aspx
Benutzerhostadresse: 127.0.0.1
Benutzer: Domäne\Benutzer
Ist authentifiziert: True
Authentifizierungstyp: NTLM
Thread Kontoname: Domäne\Benutzer

Threadinformationen:
Thread-ID: 7
Thread-Kontoname: Domäne\Benutzer
Wechselt Identität: False
Stapel Trace: bei _Default.Page_Load (Object Sender, eventargse) in c:\Documents und Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:Line 15
Bei System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Objekt o, Objekt t, eventargse)
Bei System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object Sender, Eventargse)
Bei System.Web.UI.Control.OnLoad (eventargse) an System.Web.UI.Control.LoadRecursive()
Bei System.WebUI.Page.ProcessRequestMain (Boolean IncludeStagesBeforeAsyncPoint, Boolean IncludeStagesAfterAsyncPoint)</computer>
TemplatedMailWebEventProvider können Sie eine ASPX-Seite als Vorlage ? Sie ahnen es--an. Die Ausgabe der ASPX-Seite wird im Textkörper der E-mail, so dass Sie verwendet. Anpassen des Erscheinungsbildes der Daten, die Sie empfangen.

Die Beispielanwendung Der folgende Code verwendet, die Datei Web.config TemplatedMailWebEventProvider hinzu Datei, und geben Sie die EmailTemplateTest.aspx-Seite als Vorlage. (Die EmailTemplateTest.aspx Seite durchläuft die verfügbaren Ereignisse im Puffer, und in einer Tabelle angezeigt.)
<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" />
Die e-Mail-Warnmeldung ist den folgenden ähneln:
Betreff: Ereignisbenachrichtigung 3, Teil 1: 10, Ereignisse in erhalten haben / WebSite3

Vorkommen Quelle Time Code detaillierte Code Meldung
4 System.Web.Security.UrlAuthorizationModule 17/8/2005 12: 40: 45 Uhr 4003 0 URL Autorisierung für die Anforderung erfolgreich.
4-8/17/2005 12: 40: 45 UHR 4004 0 Dateiautorisierung für die Anforderung erfolgreich.
7 ASP.ViewEvents_aspx 8/17/2005 12: 40: 45 Uhr 100010 0 laden Webevent-Beispielseite
8 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 Uhr 100010 0 Button1_Click
5 SystemWeb.Security.UrlAuthorizationModule 17/8/2005 12: 40: 45 Uhr 4003 0 URL Autorisierung für die Anforderung erfolgreich.
5 8/17/2005 12: 40: 45 UHR 4004 0 Dateiautorisierung für die Anforderung erfolgreich.
9 ASP.ViewEvents_aspx 8/17/2005 12: 40: 45 Uhr 100010 0 laden Webevent-Beispielseite
10 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 Uhr 100010 0 Button1_Click
6 System.Web.Security.UrlAuthorizationModule 17/8/2005 12: 40: 46 Uhr 4003 0 URL Autorisierung für die Anforderung erfolgreich.
6 8/17/2005 12: 40: 46 UHR 4004 0 Dateiautorisierung für die Anforderung erfolgreich.
In beiden Fällen Wenn die Buffer-Attribut false ist, die e-Mail-Nachricht wird nur ein Ereignis enthalten. Mit Pufferung auf True festgelegt ist, müssen Sie auch eine BufferMode angeben, womit wie oft der Puffer geleert wird. Es gibt einige BufferModes Standard in der globalen Web.config-Datei.

Wenn DetailedTemplateErrors = "true", dann alle Fehler die auftreten, wenn Sie die Vorlage erhalten im Hauptteil Ausführen der e-Mail-Nachrichten. Wenn DetailedTemplateErrors = "false", ein allgemeiner Fehler gesendet.

A detaillierte Fehler ausgelöst, indem Sie EmailTemplateTest.aspx sieht folgendermaßen aus:
Serverfehler in ' / WebSite3' Anwendung.

Ein nicht behandeltes Ausnahme während der Ausführung der Vorlagenseite, die zum Erstellen verwendet Diese Ereignisbenachrichtigung. Die 1-Ereignisse, die Teil dieser Benachrichtigung waren wurden verworfen.

Beschreibung: Eine nicht behandelte Ausnahme ist aufgetreten, während die Ausführung der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung für mehr Informationen über den Fehler und Ursprung in der Code.

Ausnahmedetails: System.Web.HttpException: Session State Can nur verwendet werden, wenn EnableSessionState auf true gesetzt ist, entweder in einer Konfiguration festgelegt ist Datei oder in der Seitendirektive. Außerdem stellen Sie sicher, dass System.Web.SessionStateModule oder ein benutzerdefiniertes Sitzungszustandsmodul ist in enthalten. die <configuration>\<system.web>\<httpModules> -Abschnitt in der Anwendungskonfiguration.

Quelldatei: c:\Documents und Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs Zeile: 17

Stack-Trace: [HttpException (0 x 80004005): Session State kann nur verwendet werden, wenn EnableSessionState auf true gesetzt ist, entweder in einer Konfiguration festgelegt ist Datei oder in der Seitendirektive. Außerdem stellen Sie sicher, dass System.Web.SessionStateModule oder ein benutzerdefiniertes Sitzungszustandsmodul ist in enthalten. die <configuration>\<system.web>\<httpModules> -Abschnitt in der die Anwendungskonfiguration.]
System.Web.UI.Page.get_Session() + 146
e-MailTemplateTest.Page_Load(Object sender, EventArgs e) in c:\Documents und Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr FP Objekt o, Objekt t, eventargse) + 13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object Sender, Eventargse) + 45
System.Web.UI.Control.OnLoad (eventargse) + 80
SystemWeb.UI.Control.LoadRecursive() + 49
System.Web.UI.Page.ProcessRequestMain (Boolean IncludeStagesBeforeAsyncPoint, Boolean IncludeStagesAfterAsyncPoint) +3749

[HttpUnhandledException (0 x 80004005): Ausnahme vom Typ 'System.Web.HttpUnhandledException' wurde wird ausgelöst,.]
System.Web.UI.Page.HandleError (Exception e) +929
System.Web.UI.Page.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 (IHttpHandler-handler TextWriter-Writer, booleschen PreserveForm VirtualPath Pfad VirtualPath FilePath, String PhysPath, Ausnahmefehler, String QueryStringOverride) +1012

[HttpException (0 x 80004005): Fehler ausgeführten untergeordneten Anforderung für / WebSite3/e-mailTemplateTest.aspx.]
System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler Handler, TextWriter-Writer, booleschen PreserveForm, VirtualPath Pfad VirtualPath FilePath, String PhysPath, Ausnahmefehler, String QueryStringOverride) +1525
System.Web.HttpServerUtility.Execute (Zeichenfolgenpfad, TextWriter writer Boolean PreserveForm) +754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse (String Pfad, TextWriter-Writer, ErrorFormatterGenerator ErrorFormatterGenerator) +249</httpModules></system.web></configuration></httpModules></system.web></configuration>
Wenn das Attribut false ist und ein Fehler vorliegt, werden nur Sie erhalten Sie eine allgemeine Fehlermeldung, die wie folgt aussieht:
Server Fehler in ' / WebSite3' Anwendung.

Eine nicht behandelte Ausnahme ist aufgetreten während der Ausführung der Vorlagenseite verwendet, um dieses Ereignis erstellen Benachrichtigung. Die 8-Ereignisse, die Teil dieser Benachrichtigung waren wurden verworfen.

Beschreibung: Die aktuelle Konfiguration wird verhindert, dass die Ausnahmedetails in dieser Nachricht eingeschlossen werden. Fügen Sie die "DetailedTemplateErrors = True"-Attribut auf die Konfiguration des Anbieters zu aktivieren Ausnahmedetails gemeldet werden.
Hinweis Für die Pufferung-bezogenen Attribute jeder Flush führt zu einer Benachrichtigung. Wenn der Flush mehr Ereignisse enthält als MaxEventsPerMessage zulässt, wird die Benachrichtigung in mehreren E-mails aufgeteilt, aber sie werden alle noch als die gleiche Mitteilung werden. Z. B. ein Flush 13 Ereignisse generiert, aber MaxEventsPerMessage können nur fünf. Sie erhalten drei E-mails: die ersten beiden e-Mail-Nachrichten werden jede enthalten fünf Ereignisse, und die dritte e-Mail-Nachrichten enthalten drei Ereignisse.

Wenn es mehr E-mails werden als MaxMessagesPerNotification zulässt, werden einige Ereignisse verworfen. Wenn Sie festlegen, z. B. MaxMessagesPerNotification auf zwei und Sie verwenden die gleichen MaxEventsPerMessage wie oben beschrieben vor, Sie würden nur zwei E-mails empfangen. Die Ereignisse, die wäre auf den dritten E-mail abgelegt werden. Alle Herunterfallen oder das Abschneiden Benachrichtigungen werden in einer der E-mails für simple Mail-Dienstanbieter vermerkt. Oberen Rand der e-Mail-Nachricht wird wie folgt aussehen:
** Warnungen **
---------------
Die 10 Ereignisse für diese verbleibenden Benachrichtigungszeitraum verworfen, weil die maximale Anzahl von Nachrichten pro Benachrichtigung wurde überschritten. (Warnungs-ID: 101)
Seit Sie Kontrolle über das Format der E-mail für den auf Vorlagen basierenden Anbieter haben, stehen Ihnen um für Tropfen/Abschneiden selbst überprüfen und bestimmen, ob die in enthalten die e-Mail-Nachrichten.

Hinweis E-Mail-Dienstanbieter verwenden System.Net.Mail, so dass Sie zu konfigurieren System.Net.Mail in der Datei Web.config.

Weitere Informationen Informationen über die ASP.NET Settings Schema finden Sie auf der folgenden Microsoft-Website Website:
HealthMonitoring-Element (ASP.NET Settings Schema)
http://msdn2.Microsoft.com/library/2fwh2ss9(en-US,VS.80).aspx
Weitere Informationen über Systemüberwachung in ASP.NET 2.0 finden Sie auf die folgende Website von Microsoft:
Gewusst wie: Verwenden der Systemüberwachung in ASP.NET 2.0
http://msdn2.Microsoft.com/en-us/library/ms998306.aspx
Wie immer, fühlen sich frei, und Wünsche zu Themen soll in zukünftigen Spalten behandeln oder in der Knowledge Base mithilfe der Danach Fragen Formular.

Eigenschaften

Artikel-ID: 893664 - Geändert am: Freitag, 30. November 2012 - Version: 5.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 2.0
Keywords: 
kbhowto kbasp kbmt KB893664 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 893664
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

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