Αναγν. άρθρου: 893664 - Τελευταία αναθεώρηση: Πέμπτη, 23 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0

Συμβάντα Web του ASP.NET 2.0

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Πληροφορίες για την έκδοση Beta
Αυτό το άρθρο ασχολείται με την έκδοση Beta ενός προϊόντος της Microsoft. Οι πληροφορίες αυτού του άρθρου παρέχονται ως έχουν και μπορεί να αλλάξουν χωρίς προειδοποίηση.

Δεν διατίθεται επίσημη υποστήριξη προϊόντος από τη Microsoft για αυτό το προϊόν Beta. Για πληροφορίες σχετικά με τη λήψη υποστήριξης για μια έκδοση Beta, ανατρέξτε στην τεκμηρίωση που περιλαμβάνεται στα αρχεία του προϊόντος Beta ή στην τοποθεσία Web από την οποία κάνατε λήψη της συγκεκριμένης έκδοσης.
Υποστήριξη ASP.NET ομιλία στήλη
Για να προσαρμόσετε αυτήν τη στήλη για τις ανάγκες σας, σας προσκαλούμε να υποβάλετε τις ιδέες σας σχετικά με θέματα που σας ενδιαφέρουν και θέματα για τα οποία θέλετε να δείτε απευθύνεται σε μελλοντικές άρθρα της Γνωσιακής βάσης και οι στήλες υποστήριξης της φωνής. Μπορείτε να υποβάλετε τις ιδέες και τα σχόλιά σας χρησιμοποιώντας τοΕρώτηση για την (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) MAPI. Υπάρχει επίσης μια σύνδεση για τη φόρμα στο κάτω μέρος αυτής της στήλης.

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

ΕΙΣΑΓΩΓΗ

Καλώς ορίσατε στη στήλη ASP.NET υποστήριξης της φωνής. Το όνομά μου είναι Jerry Orman. Μου έχουν με τη Microsoft περισσότερα από 5 χρόνια και αναλώσατε μεγαλύτερο μέρος του χρόνου που εστιάζεται στις τεχνολογίες που σχετίζονται με το Web, όπως το FrontPage και τις νέες τεχνολογίες του SharePoint. Αφιέρωσα το τελευταίο έτος που λειτουργεί με το ASP.NET ως ένας μηχανικός υποστήριξης.

Αυτό το μήνα στη στήλη υποστήριξης φωνής, μου πρόκειται για την περιγραφή της νέας δυνατότητας συμβάντων Web που παρέχονται στην επερχόμενη έκδοση του ASP.NET 2.0.

Η δυνατότητα συμβάντων Web του ASP.NET 2.0

Μία από τις κύριες νέες υπηρεσίες που παρέχονται στο ASP.NET 2.0 είναι το Web τη δυνατότητα συμβάντα που παρέχονται από την εύρυθμη λειτουργία Εποπτεία συστήματος. Τροποποιώντας το αρχείο Web.config, μπορείτε να χρησιμοποιήσετε την εύρυθμη λειτουργία Εποπτεία συστήματος για να καταγράψει ανεπίλυτες εξαιρέσεις, φόρμες που έχουν λήξει, δελτία ελέγχου ταυτότητας και άλλα δεδομένα που θέλετε να καταγράφονται στην εφαρμογή σας. Η στήλη αυτή θα σας βοηθήσει να ξεκινήσετε χρησιμοποιώντας τη δυνατότητα συμβάντων Web και παρέχουν επίσης παραδείγματα του τρόπου χρήσης των διαφόρων υπηρεσιών παροχής στο ASP.NET 2.0.

Καταγραφή επιτυγχάνεται καθορίζοντας έναν κανόνα ο οποίος συσχετίζει τα συμβάντα με μια υπηρεσία παροχής. Ο κανόνας ορίζει τον τύπο των συμβάντων που αποστέλλονται στην υπηρεσία παροχής. Διατίθενται τα παρακάτω συμβάντα βάσης για να συνδεθείτε:
Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
WebBaseEventΗ κλάση συμβάντος βάσης για όλα τα συμβάντα. Περιέχει τις απαιτούμενες ιδιότητες για όλα τα συμβάντα όπως κώδικα συμβάντος, κωδικό λεπτομερειών συμβάντος, ημερομηνία και ώρα που προκάλεσε το συμβάν, ακολουθίας αριθμό, το μήνυμα συμβάντος και λεπτομερειών συμβάντος.
WebManagementEventΗ κλάση συμβάν βάσης για συμβάντα διαχείρισης, όπως η διάρκεια ζωής της εφαρμογής, αίτηση, το σφάλμα και συμβάντα ελέγχου.
WebHeartbeatEventΤο συμβάν που δημιουργούνται από την εφαρμογή σε τακτά χρονικά διαστήματα για να καταγράψετε πληροφορίες κατάστασης χρήσιμη κατά το χρόνο εκτέλεσης.
WebAuditEventΗ βασική κλάση για ασφάλεια ελέγχετε συμβάντα, τα οποία χρησιμοποιούνται για την επισήμανση συνθηκών όπως Αποτυχία εξουσιοδότησης, απέτυχε η αποκρυπτογράφηση,etc.
WebRequestEventΗ βασική κλάση για όλα τα συμβάντα πληροφόρησης αίτησης.
WebBaseErrorEventΗ βασική κλάση για όλα τα συμβάντα που δηλώνει τις συνθήκες σφάλματος.
Οι τύποι των διαθέσιμων υπηρεσιών παροχής σάς επιτρέπουν να στέλνουν την έξοδο του συμβάντος στην προβολή συμβάντων, SQL Server, των οργάνων διαχείρισης των Windows (WMI) και ηλεκτρονικού ταχυδρομείου. Το προκαθορισμένο υπηρεσιών παροχής και τις αντιστοιχίσεις συμβάν Μειώστε τον όγκο εργασίας που απαιτείται για τη λήψη συμβάντων εξόδου που καταγράφονται.

Το ASP.NET 2.0 χρησιμοποιεί το αρχείο καταγραφής συμβάντων υπηρεσίας παροχής εκτός του-πρώτη καταγραφή συμβάντων που βασίζονται σε τομείς εφαρμογής εκκίνηση και διακοπή, καθώς συνδέονται οι ανεπίλυτες εξαιρέσεις. Αυτό σας βοηθά να καλύψει μερικά από τα βασικά σενάρια. For example, let's say that your application throws an exception, but the user doesn't save the error and you can't reproduce it. With the default Event Log rule, you would be able to gather the exception and stack information to get a better idea of what kind of error occurred. Or, if your application is losing session state, you can look in the Event Log to determine whether the application domain is recycling, and why the application domain stopped in the first place.

Also, the health monitoring system is extensible. For example, you can define custom Web events, fire them within your application, and then define a rule to send the event information to a provider such as your e-mail. This allows you to easily tie your instrumentation to the health monitoring providers. As another example, you could fire an event each time an order is processed and set up a rule that sends each event to the SQL Server database. You could also fire an event when a user fails to log on multiple times in a row, and set up the event to use the e-mail-based providers.

The configuration for the default providers and events is stored in the global Web.config file. The global Web.config file stores all the Web-based settings that were stored in the Machine.config file in ASP.NET 1x. The global Web.config file is located in the following directory:
%windir%\Microsoft.Net\Framework\v2.0.*\config\Web.config
The <healthmonitoring> section of the global Web.config file provides default configuration settings. You can override these setting or configure your own settings by implementing the <healthmonitoring> section in the Web.config file for your application.</healthmonitoring></healthmonitoring>

The <healthmonitoring> section of the global Web.config file contains the following items: </healthmonitoring>
  • providersContains providers set up for the Event Viewer, WMI, and SQL Server.
  • eventMappingsContains mappings for the various WebBase classes. You can extend this list if you generate your own event class. Generating your own event class gives you finer granularity over the providers you send information to. For example, you could configure unhandled exceptions to be sent to SQL Server, while sending your own custom events to e-mail.
  • rulesLinks the eventMappings to the provider.
  • bufferingUsed with SQL Server and e-mail providers to determine how often to flush the events to the provider.
Below is a code example from the global Web.config file.
<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>

Provider sample

This provider sample contains the following files:
  • The ViewEvents.aspx file– Triggers theMyEventcustom web event inPage_Load and Log Event button clickΣυμβάν. Has a GridView that uses the database connection in the Web.config file to list the events logged to SQL Server.

    Be sure to configure the connectionString in the Web.config file to point to yourASPNETDBDatabase.
  • The Web.config file– Has all the various providers and rules configured and commented out. Uncomment the rule you want to test, then browse the Default.aspx and ViewEvent.aspx pages to see what the output looks like.
  • The MyEvent.cs file– Located in the App_Data folder. This is used in the ViewEvents.aspx page to fire a custom event.
  • The Default.aspx file– Throws a System.NullReferenceException to see what an unhandled exception logs.
  • The EmailTemplateTest.aspx file– Used for the TemplateemailProvider sample. The code-behind file for the EmailTemplateTest.aspx file has lines of code you can uncomment, which will cause the page to throw an exception.

How to store events to Event Viewer

As I mentioned earlier, the provider for logging events in the Event Viewer is configured for you in the global Web.config file. By default, all events based onWebBaseErrorEventANDWebFailureAuditEventare logged. You can add additional rules to log additional information to the Event Log. For example, if you wanted to log all events (i.e., every event based onWebBaseEvent), you could add the following rule to your Web.config file:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="EventLogProvider" profile="Critical"  />
	</rules>
</healthMonitoring>
This rule would link theAll Eventsevent map to the Event Log provider. Both eventMapping and the provider are included in the global Web.config file. You can then use the ViewEvents.aspx page to trigger the events generated by browsing the page. The page will also fire theMyEventcustom event in thePage_Load and a Button ClickΣυμβάν.

To see the type of data generated, browse the Default.aspx page. This will throw aSystem.NullReferenceExceptionexception, and the following event will be logged in the Event Viewer:

Τύπος συμβάντος: προειδοποίηση
Event Source: ASP.NET 2.0.50601.0
Event Category: Web Event
Event ID: 1311
Date: 8/16/2005
Time: 9:37:44 PM
Χρήστης: δ/Υ
Computer:Όνομα υπολογιστή
Περιγραφή:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 8/16/2005 9:37:44 PM
Event time (UTC): 8/17/2005 2:37:44 AM
Το Αναγνωριστικό συμβάντος: 88838b4e73cf4a0d9a36ac737ff9d1a0
Ακολουθία συμβάντων: 39
Γεγονότος: 1
Κωδικός λεπτομερειών συμβάντος: 0
Πληροφορίες εφαρμογής: τομέας εφαρμογής: d047d537 2 127687190240098660
Επίπεδο αξιοπιστίας: πλήρης
Διαδρομή εφαρμογής Virtual: /WebSite3
Διαδρομή εφαρμογής:Φυσική διαδρομή
Όνομα υπολογιστή:Όνομα υπολογιστή
Επεξεργασία πληροφοριών: Αναγνωριστικό διεργασίας: 3776
Όνομα διεργασίας: WebDev.WebServer.EXE
Όνομα λογαριασμού: DOMAIN\user
Πληροφορίες εξαίρεσης: Τύπος εξαίρεσης: NullReferenceException
Μήνυμα εξαίρεσης: αντικείμενο αναφοράς δεν θα οριστεί σε μια περίοδο λειτουργίας ενός αντικειμένου.
Αίτηση για πληροφορίες: αίτηση URL: http://localhost:1698/WebSite3/Default.aspx
Αίτηση διαδρομής: /WebSite3/Default.aspx
Διεύθυνση κεντρικού υπολογιστή χρήστη: 127.0.0.1
Χρήστης: DOMAIN\User
Έλεγχος ταυτότητας είναι: Ναι
Τύπος ελέγχου ταυτότητας: NTLM
Το νήμα λογαριασμό ονόματος: DOMAIN\User
Το νήμα πληροφορίες:
Το Αναγνωριστικό του νήματος: 8
Το νήμα λογαριασμό ονόματος: DOMAIN\User
Είναι απομιμείται: False

Παρακολούθηση στοίβας: στο _Default.Page_Load (Object αποστολέα, EventArgs e) στο c:\Documents και Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:line 15
στο System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, αντικείμενο o, αντικείμενο t, EventArgs e)
στο System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object αποστολέα, EventArgs e)
στο System.Web.UI.Control.OnLoad (EventArgs e) στο System.Web.UI.Control.LoadRecursive()
στο System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Λεπτομέρειες προσαρμοσμένο συμβάν: Για περισσότερες πληροφορίες, ανατρέξτε στη Βοήθεια και υποστήριξη στο http://support.microsoft.com.

Καταγραφή όλων των συμβάντων στο αρχείο καταγραφής συμβάντων δημιουργεί επίσης πληροφοριακά συμβάντα. Το ακόλουθο συμβάν εμφανίζεται στο URL εξουσιοδότησης με επιτυχία για την αίτηση σελίδας:

Τύπος συμβάντος: Πληροφορίες
Προέλευση συμβάντος: ASP.NET 2.0.50601.0
Κατηγορία συμβάντος: Web συμβάντων
Το Αναγνωριστικό συμβάντος: 1314
Ημερομηνία: 8/16/2005
Χρόνος: 11: 04: 44 μμ
Χρήστης: δ/Υ
Computer:Όνομα υπολογιστή
Περιγραφή:
Κωδικός συμβάντος: 4003
Μήνυμα συμβάντος: URL εξουσιοδότηση για αυτή την αίτηση πέτυχε.
Ώρα συμβάντος: 16/8/2005 11: 04: 44 μμ
Συμβάν ώρα (UTC): 17/8/2005 4: 04: 44 AM
Το Αναγνωριστικό συμβάντος: fec3d73fba0247eaba425e5ccfada18e
Ακολουθία συμβάντων: 2
Γεγονότος: 1
Κωδικός λεπτομερειών συμβάντος: 0
Πληροφορίες εφαρμογής:
Τομέας εφαρμογής: 1-d047d537-127687250829701433
Επίπεδο αξιοπιστίας: πλήρης
Διαδρομή εφαρμογής Virtual: /WebSite3
Διαδρομή εφαρμογής: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\
Όνομα υπολογιστή:Όνομα υπολογιστή
Πληροφορίες διαδικασίας:
Το Αναγνωριστικό διεργασίας: 2292
Όνομα διεργασίας: WebDev.WebServer.EXE
Όνομα λογαριασμού: DOMAIN\user
Αίτηση για πληροφορίες:
Αίτηση URL: http://localhost:2087/WebSite3/Default.aspx
Αίτηση διαδρομής: /WebSite3/Default.aspx
Διεύθυνση κεντρικού υπολογιστή χρήστη: 127.0.0.1
Χρήστης: DOMAIN\User
Έλεγχος ταυτότητας είναι: Ναι
Τύπος ελέγχου ταυτότητας: NTLM
Το νήμα λογαριασμό ονόματος: DOMAIN\User

Λεπτομέρειες προσαρμοσμένο συμβάν:
Για περισσότερες πληροφορίες, ανατρέξτε στο Κέντρο Βοήθειας και υποστήριξης (Help and Support Center) στη διεύθυνση http://support.microsoft.com.

Με τον τρόπο αποθήκευσης των συμβάντων στο διακομιστή SQL Server

Αυτή η μέθοδος χρησιμοποιεί τοASPNETDBβάση δεδομένων, η οποία δημιουργείται από το εργαλείο Aspnet_regsql.exe. Η προεπιλεγμένη υπηρεσία παροχής χρησιμοποιεί τη συμβολοσειρά σύνδεσης LocalSqlServer, η οποία χρησιμοποιεί είτε μια βάση δεδομένων που βασίζεται σε αρχείο στο φάκελο App_data ή το τοπικό SQLExpress παρουσία του SQL Server. Και η συμβολοσειρά σύνδεσης LocalSqlServer και το SqlProvider ρυθμίζονται στο καθολικό αρχείο Web.config.

Το LocalSqlServer συμβολοσειρά σύνδεσης στο καθολικό αρχείο Web.config είναι κάπως έτσι:
<connectionStrings>
	<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>
Εάν θέλετε να χρησιμοποιήσετε έναν άλλο διακομιστή SQL Server, θα πρέπει να χρησιμοποιήσετε το εργαλείο Aspnet_regsql.exe, το οποίο μπορεί να βρεθεί στο φάκελο %windir%\Microsoft.Net\Framework\v2.0.*\Aspnet_regsql.exe. Χρησιμοποιήστε το εργαλείο Aspnet_regsql.exe για να δημιουργήσετε μια προσαρμοσμένηASPNETDBτης βάσης δεδομένων του διακομιστή SQL Server, στη συνέχεια, προσθέστε τη συμβολοσειρά σύνδεσης στο αρχείο .config εφαρμογές και στη συνέχεια να προσθέσετε μια υπηρεσία παροχής, χρησιμοποιώντας τη νέα συμβολοσειρά σύνδεσης. Αφού τοASPNETDBβάση δεδομένων που δημιουργήθηκε, θα πρέπει να ορίσετε έναν κανόνα για να συνδέσετε ένα eventMapping το sqlProvider.

Για να ρυθμίσετε μια προσαρμοσμένη βάση δεδομένων, ακολουθήστε τα εξής βήματα:
  1. Δημιουργία ενόςASPNETDBDatabase.
    1. Εκτελέστε –W aspnet_regsql.exe και ακολουθήσετε τον οδηγό.
    2. Εκτελέστε την εντολή για να αυτοματοποιήσετε τη διαδικασία: Aspnet_regsql –A –S wSQL Server-E.
  2. Προσθέστε μια συμβολοσειρά σύνδεσης που οδηγεί στη βάση δεδομένων, ώστε να φαίνεται κάπως έτσι:
    <connectionStrings>
    	<add name="MYASPNETDB" connectionString="Server=<SQL Instance>;Integrated Security=SSPI;Database=aspnetdb"/>
    </connectionStrings>
  3. Προσθήκη μιας υπηρεσίας παροχής για να χρησιμοποιήσετε τη συμβολοσειρά σύνδεσης MYASPNETDB, ώστε να φαίνεται κάπως έτσι:
    <healthMonitoring>
    	<providers>
    		<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>
    	</providers>
    </healthMonitoring>
Εάν χρησιμοποιήσετε την προεπιλεγμένη SqlProvider ή να ρυθμίσετε τη δική σας υπηρεσία παροχής, θα χρειαστεί να προσθέσετε έναν κανόνα, η σύνδεση στην υπηρεσία παροχής με μια αντιστοίχιση συμβάντων. Ο εξής κανόνας συνδέει τη νέα υπηρεσία παροχής που δημιουργήσατε παραπάνω για τοΌλα τα συμβάντααντιστοίχιση συμβάντων. Αυτός ο κανόνας θα καταγράψει όλα τα συμβάντα με βάσηWebBaseEventκαι τις στέλνουν το MySqlWebEventProvider που θα χρησιμοποιεί τη συμβολοσειρά σύνδεσης MYASPNETDB. Ο κώδικας που ακολουθεί προσθέτει έναν κανόνα για να συνδεθείτε στην υπηρεσία παροχής με μια αντιστοίχιση συμβάντων:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="MySqlWebEventProvider" profile="Critical"/>
	</rules>
</healthMonitoring>
Αν θέλετε να στείλετε μόνο σφάλματα στον SQL Server, μπορείτε να προσθέσετε τον εξής κανόνα:
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

Τρόπος προώθησης συμβάντων WMI

Μπορείτε επίσης να προωθήσετε τα συμβάντα στο WMI. Η υπηρεσία παροχής WMI έχει ρυθμιστεί για εσάς στο καθολικό αρχείο Web.config από προεπιλογή.

Το ακόλουθο παράδειγμα κώδικα προσθέτει έναν κανόνα για την προώθηση των συμβάντων στο WMI:
<providers>
	<add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
Θα πρέπει να προσθέσετε έναν κανόνα για να συσχετίσετε μια eventMapping με την υπηρεσία παροχής, καθώς και μια εφαρμογή παρακολούθησης WMI για ακρόαση για τα συμβάντα. Το ακόλουθο παράδειγμα κώδικα προσθέτει έναν κανόνα για να συνδεθείτε στην υπηρεσία παροχής WMI για τοΌλα τα συμβάντααντιστοίχιση συμβάντων:
<rules>
	<add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  />
</rules>
Το δείγμα εφαρμογής κονσόλας SampleASPNET χρησιμοποιεί τοManagementEventWatcherobject to monitor for events and display them in the console window.
To use SampleASPNET, follow these steps:
  1. Launch SampleASPNET.exe.
  2. Browse the ViewEvents.aspx page; when you do, you will see events listed in the console application.
  3. Κάντε κλικLog Event Button_Click. The page will post back, and you'll see the additional events also logged.
Σύμπτυξη αυτής της εικόναςΑνάπτυξη αυτής της εικόνας
ΣΗΜΕΙΩΣΗIf you are monitoring events on a remote computer, the listening application needs to be running on that computer as an account with admin access.

How to forward events to e-mail

You can also forward events to e-mail. This would allow you to get information about your application directly in your (probably overflowing) Inbox. Be careful about which event rules you map to your e-mail provider, as you can unintentionally send yourself a lot of information that may be better suited for SQL Server or the Event Log.

There are two e-mail providers, SimpleMailWebEventProvider and TemplatedMailWebEventProvider. Each has the same configuration attributes, with the exception of the "template" and "detailedTemplateErrors" attributes, which are only available on the TemplatedMailWebEventProvider.

ΣΗΜΕΙΩΣΗNeither of these e-mail providers is configured for you. You'll need to add them to your Web.config file.

The main difference between these two e-mail providers is that SimpleMailWebEventProvider sends e-mails in a generic template that cannot be modified. The sample Web.config file adds this e-mail provider to the list of configured providers by using the following rule:
<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"/>
The following rule is also added to tie the e-mail provider to theAll Eventsevent map:
<add name="All Events" eventName="All Events" provider="mySimple-mailWebEventProvider" profile="Critical"/>
The e-mail alert message is similar to the following:
Subject: Event Notification 12, part 1: Web EventsMicrosoft.Samples.WebEvents.MyEvent event received in /WebSite3

** Application Information **
---------------
Application domain: d047d537-9-127687218865923053 Trust level: Full Application Virtual Path: /WebSite3 Application Path: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ Machine name:<computer name=""></computer>

** Events **
---------------
Event code: 100010
Event message: Button1_Click
Event time: 8/16/2005 10:12:52 PM
Event time (UTC): 8/17/2005 3:12:52 AM
Event ID: 6e5cd252d6114a9e98687598dc6b5d50 Event sequence: 12 Event occurrence: 5 Event detail code: 0

Custom event details:

---------------
The following is an e-mail alert message that shows an unhandled exception:
Θέμα: Το συμβάν ειδοποίησης 7, μέρος 1: συμβάν EventsSystem.Web.Management.WebRequestErrorEvent Web λαμβάνονται στο /WebSite3

** Πληροφορίες εφαρμογής **
---------------
Τομέα εφαρμογής: επίπεδο αξιοπιστίας d047d537 5 127687293149504903: Πλήρης εικονική διαδρομή εφαρμογής: WebSite3 διαδρομή εφαρμογής: όνομα C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ παραγωγής:<computer name=""></computer>

** Συμβάντα **
---------------
Συμβάν κώδικα: 3005
Μήνυμα συμβάντος: Παρουσιάστηκε μια εξαίρεση που δεν αντιμετωπίστηκε.
Συμβάν ώρα: 17/8/2005 12: 17: 37 AM
Συμβάν ώρα (UTC): 17/8/2005 5: 17: 37 AM
Ακολουθία συμβάντων 14b7f24102e140bbbae302d80e5a5f36 Αναγνωριστικό συμβάντος:: 7 συμβάντων εμφάνισης: 1 συμβάντων λεπτομερειών κωδικός: 0

Πληροφορίες διαδικασίας:
Το Αναγνωριστικό διεργασίας: 2292
Όνομα διεργασίας: WebDev.WebServer.EXE
Όνομα λογαριασμού: DOMAIN\User

Πληροφορίες εξαίρεσης:
Τύπος εξαίρεσης: System.NullReferenceException
Μήνυμα εξαίρεσης: αντικείμενο αναφοράς δεν θα οριστεί σε μια περίοδο λειτουργίας ενός αντικειμένου.

Αίτηση για πληροφορίες:
Αίτηση URL: http://localhost:2087/WebSite3/Default.aspx
Αίτηση διαδρομής: /WebSite3/Default.aspx
Διεύθυνση κεντρικού υπολογιστή χρήστη: 127.0.0.1
Χρήστης: DOMAIN\User
Έλεγχος ταυτότητας είναι: Ναι
Τύπος ελέγχου ταυτότητας: NTLM
Το νήμα λογαριασμό ονόματος: DOMAIN\User

Το νήμα πληροφορίες:
Το Αναγνωριστικό του νήματος: 7
Όνομα λογαριασμού του νήματος: DOMAIN\User
Είναι απομιμείται: False
Παρακολούθηση στοίβας: στο _Default.Page_Load (Object αποστολέα, EventArgs e) στο c:\Documents και Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:line 15
στο System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, αντικείμενο o, αντικείμενο t, EventArgs e)
στο System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object αποστολέα, EventArgs e)
στο System.Web.UI.Control.OnLoad (EventArgs e) στο System.Web.UI.Control.LoadRecursive()
στο System.WebUI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
TemplatedMailWebEventProvider σάς επιτρέπει να καθορίσετε μια σελίδα ASPX ως πρότυπο--να μαντεφθεί το--. Η έξοδος της σελίδας ASPX χρησιμοποιείται στο σώμα του μηνύματος ηλεκτρονικού ταχυδρομείου, δίνοντάς σας τη δυνατότητα να προσαρμόσετε την εμφάνιση των δεδομένων που λαμβάνετε.

Το δείγμα εφαρμογής χρησιμοποιεί τον ακόλουθο κώδικα για να προσθέσετε TemplatedMailWebEventProvider Web.config το αρχείο και να καθορίσετε τη σελίδα EmailTemplateTest.aspx ως πρότυπο. (Η σελίδα EmailTemplateTest.aspx διέρχεται μέσω των συμβάντων που είναι διαθέσιμες στο buffer και τα εμφανίζει σε έναν πίνακα.)
<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" />
Το μήνυμα ειδοποίησης ηλεκτρονικού ταχυδρομείου είναι παρόμοιο με το ακόλουθο:
Θέμα: Το συμβάν ειδοποίησης 3, μέρος 1: 10 συμβάντα που έχουν ληφθεί /WebSite3

Εμφάνιση προέλευσης κώδικα λεπτομέρεια κωδικός μήνυμα χρόνου
4 12:40:45 17/8/2005 System.Web.Security.UrlAuthorizationModule ΠΜ 4003 0 URL εξουσιοδότηση για αυτή την αίτηση πέτυχε.
4 8/17/2005 12:40:45 AM 4004 0 ολοκληρώθηκε με επιτυχία η εξουσιοδότηση αρχείου για αυτή την αίτηση.
7 ASP.ViewEvents_aspx 17/8/2005 12:40:45 AM 100010 0 φόρτωση webevent δείγμα σελίδας
8 12:40:45 17/8/2005 ASP.ViewEvents_aspx AM 100010 0 Button1_Click
5 SystemWeb.Security.UrlAuthorizationModule 12:40:45 17/8/2005 ΠΜ 4003 0 URL εξουσιοδότηση για αυτή την αίτηση πέτυχε.
5 8/17/2005 12:40:45 AM 4004 0 ολοκληρώθηκε με επιτυχία η εξουσιοδότηση αρχείου για αυτή την αίτηση.
9 ASP.ViewEvents_aspx 17/8/2005 12:40:45 AM 100010 0 φόρτωση webevent δείγμα σελίδας
10 12:40:45 17/8/2005 ASP.ViewEvents_aspx AM 100010 0 Button1_Click
6 12:40:46 17/8/2005 System.Web.Security.UrlAuthorizationModule Π.Μ 4003 0 URL εξουσιοδότηση για αυτή την αίτηση πέτυχε.
6 8/17/2005 12:40:46 AM 4004 0 ολοκληρώθηκε με επιτυχία η εξουσιοδότηση αρχείου για αυτή την αίτηση.
Και στις δύο περιπτώσεις, εάν το χαρακτηριστικό buffer είναι ψευδής, το μήνυμα ηλεκτρονικού ταχυδρομείου θα περιέχει μόνο ένα συμβάν. Με τη λειτουργία buffering οριστεί σε true, πρέπει επίσης να καθορίσετε μια bufferMode, που δηλώνει πόσο συχνά θα την εκκαθάριση του buffer. Υπάρχουν ορισμένες bufferModes προεπιλογή στο καθολικό αρχείο Web.config.

Εάν detailedTemplateErrors = "true", τότε τα σφάλματα που παρουσιάζονται κατά την εκτέλεση του προτύπου θα σταλούν στο σώμα του μηνύματος ηλεκτρονικού ταχυδρομείου. Εάν detailedTemplateErrors = "false", αποστέλλεται ένα γενικό σφάλμα.

Μια λεπτομερή σφάλμα δημιουργήθηκε από EmailTemplateTest.aspx μοιάζει κάπως έτσι:
Σφάλμα διακομιστή στην ' / WebSite3 ' εφαρμογής.

Παρουσιάστηκε μια εξαίρεση που δεν επιλύθηκε κατά την εκτέλεση της σελίδας προτύπου που χρησιμοποιήθηκε για τη δημιουργία αυτής της ειδοποίησης συμβάντων. Απορρίφθηκαν, τα συμβάντα 1 που ήταν τμήμα αυτού του μηνύματος.

Περιγραφή: Προέκυψε μια εξαίρεση που δεν αντιμετωπίστηκε κατά την εκτέλεση της τρέχουσας αίτησης web. Ελέγξτε το ίχνος στοίβας για περισσότερες πληροφορίες σχετικά με το σφάλμα και την προέλευση του κωδικού.

Λεπτομέρειες εξαίρεσης: System.Web.HttpException: η κατάσταση περιόδου λειτουργίας μπορεί να χρησιμοποιηθεί μόνο όταν το enableSessionState έχει οριστεί σε true, σε ένα αρχείο ρύθμισης παραμέτρων ή στην οδηγία Page. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpmodules> section in the application configuration.</httpmodules></system.web></configuration>

Source File: c:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs Line: 17

Stack Trace: [HttpException (0x80004005): Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpmodules> section in the application configuration.]</httpmodules></system.web></configuration>
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, Object o, Object 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
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3749

[HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown.]
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, Boolean preserveForm, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) +1012

[HttpException (0x80004005): Error executing child request for /WebSite3/e-mailTemplateTest.aspx.]
System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) +1525
System.Web.HttpServerUtility.Execute(String path, TextWriter writer, Boolean preserveForm) +754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse(String path, TextWriter writer, ErrorFormatterGenerator errorFormatterGenerator) +249
If the attribute is false and there is an error, you will only get a generic error message, which looks like this:
Server Error in '/WebSite3' Application.

An unhandled exception occurred during the execution of the template page used to create this event notification. The 8 events that were part of this message were discarded.

Description: The current configuration prevents the exception details from being included in this message. Add the "detailedTemplateErrors=true" attribute to the provider configuration to enable exception details to be reported.
ΣΗΜΕΙΩΣΗFor the buffering-related attributes, every flush results in a notification. If the flush contains more events thanmaxEventsPerMessageallows, the notification will be broken up into multiple e-mails, but they are all still considered to be the same notification. For example, a flush generates 13 events, butmaxEventsPerMessageonly allows five. You will get three e-mails: the first two e-mails will each contain five events, and the third e-mail will contain three events.

If there are more e-mails thanmaxMessagesPerNotificationallows, some events are dropped. For example, if you set maxMessagesPerNotification to two and you use the samemaxEventsPerMessageόπως παραπάνω, που θα λαμβάνει μόνο δύο μηνύματα ηλεκτρονικού ταχυδρομείου. Τα συμβάντα που θα είναι το τρίτο ηλεκτρονικό ταχυδρομείο απορρίπτονται. Τυχόν απώλειες ή περικοπή των ειδοποιήσεων θα να σημειωθεί σε ένα από τα μηνύματα ηλεκτρονικού ταχυδρομείου, για την υπηρεσία παροχής αλληλογραφίας απλού. Στο επάνω μέρος του μηνύματος ηλεκτρονικού ταχυδρομείου θα εμφανίσει τα εξής:
** Προειδοποιήσεις **
---------------
Τα 10 συμβάντα που απομένει για αυτήν την περίοδο ειδοποίησης θα απορριφθεί, επειδή έγινε υπέρβαση του μέγιστου αριθμού μηνυμάτων που επιτρέπονται ανά ειδοποίηση. (Προσοχή Αναγνωριστικό: 101)
Εφόσον έχετε τον έλεγχο της μορφής του μηνύματος ηλεκτρονικού ταχυδρομείου για την υπηρεσία παροχής προτύπου, πρέπει να ελέγξετε απορρίπτει/περικοπή στον εαυτό σας και καθορίζουν αν θα που περιλαμβάνονται στο μήνυμα ηλεκτρονικού ταχυδρομείου.

ΣΗΜΕΙΩΣΗΥπηρεσίες παροχής ηλεκτρονικού ταχυδρομείου χρησιμοποιούν System.Net.Mail, ώστε να πρέπει να ρυθμίσετε τις παραμέτρους System.Net.Mail στο αρχείο Web.config.
Για περισσότερες πληροφορίες σχετικά με τη δυνατότητα συμβάντων Web του ASP.NET 2.0, μπορείτε να κάνετε λήψη των παρακάτω αρχείων δείγματος συμβάντων Web.
Σύμπτυξη αυτής της εικόναςΑνάπτυξη αυτής της εικόνας
Λήψη
Άμεση λήψη του πακέτου Web Sample.exe συμβάντα. (http://download.microsoft.com/download/a/1/e/a1ea5122-a6c4-4331-bad8-8556f256004c/Web Events Sample.exe)
Για περισσότερες πληροφορίες σχετικά με το σχήμα ρυθμίσεων ASP.NET, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
healthMonitoring στοιχείων (σχήμα ρυθμίσεων ASP.NET)
http://msdn2.Microsoft.com/Library/2fwh2ss9(en-us,VS.80).aspx (http://msdn2.microsoft.com/library/2fwh2ss9(en-us,vs.80).aspx)
Για περισσότερες πληροφορίες σχετικά με την παρακολούθηση της εύρυθμης λειτουργίας στο ASP.NET 2.0, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
Τρόπος χρήσης της εύρυθμης λειτουργίας παρακολούθησης στο ASP.NET 2.0
http://msdn2.Microsoft.com/en-us/library/ms998306.aspx (http://msdn2.microsoft.com/en-us/library/ms998306.aspx)
Πάντα, αίσθηση ελεύθερο να υποβάλλουν ιδέες σχετικά με θέματα που θέλετε στο μέλλον απευθύνεται στήλες ή στη Γνωσιακή βάση, χρησιμοποιώντας τοΕρώτηση για την (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) MAPI.

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ASP.NET 2.0
Λέξεις-κλειδιά: 
kbhowto kbasp kbmt KB893664 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:893664  (http://support.microsoft.com/kb/893664/en-us/ )
Retired KB ArticleΑποποίηση ευθυνών για περιεχόμενο της Γνωσιακής Βάσης (KB) που έχει αποσυρθεί
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.