Eventos Web en ASP.NET 2.0

Seleccione idioma Seleccione idioma
Id. de artículo: 893664 - Ver los productos a los que se aplica este artículo
Información de versión beta
En este artículo se describe una versión Beta de Microsoft producto. La información de este artículo se proporciona como-es y está sujeto a cambiar sin previo aviso.

No hay soporte técnico formal está disponible en Microsoft para este producto Beta. Para obtener información acerca de cómo obtener soporte técnico para una versión Beta, consulte la documentación que acompaña a la versión Beta archivos de producto o consulte el sitio Web donde descargó el la versión.
Columna de voz de soporte técnico de ASP.NET
Para personalizar esta columna a sus necesidades, le invitamos a enviar sus ideas acerca de temas que le interesen y los problemas que desea ver en el futuro tratarse artículos de Knowledge Base y las columnas de voz de soporte. Puede enviar sus ideas y comentarios con el Solicitarlo formulario. También es un vínculo a la forma en la parte inferior de esta columna.
Expandir todo | Contraer todo

En esta página

Introducción

Bienvenido a la columna de voz de soporte técnico de ASP.NET. Me llamo Jerry Couto. Han trabajado con Microsoft durante 5 años y han pasado la mitad de mi tiempo centrado en tecnologías relacionadas con el Web, como FrontPage y la nueva Tecnologías de SharePoint. He pasado el último año de trabajar con ASP.NET como un Ingeniero de soporte técnico.

Este mes en la columna de voz de soporte, voy a para describir la nueva característica de los eventos Web proporcionada en la próxima versión de ASP.NET 2.0.

La característica de los eventos Web en ASP.NET 2.0

Uno de los principales nuevos servicios suministrados en ASP.NET 2.0 es el sitio Web Característica de eventos proporcionada por el sistema de supervisión de estado. Mediante la modificación de la Archivo Web.config, puede utilizar el sistema de supervisión de estado en registro de no controlada excepciones, formas caducadas, vales de autenticación y cualquier otro dato que desee registra en la aplicación. Esta columna le iniciará usando la Web Eventos de características y también se proporcionan ejemplos de cómo utilizar los diversos proveedores en ASP.NET 2.0.

El registro se lleva a cabo mediante la definición de una regla los eventos que asocia a un proveedor. La regla define el tipo de eventos que se envían al proveedor. Los siguientes eventos de base están disponibles para usted Para iniciar una sesión:
Contraer esta tablaAmpliar esta tabla
WebBaseEventLa clase de evento de base para todos los eventos. Contiene la las propiedades necesarias para todos los eventos como código de evento, código de detalle de evento, el fecha y hora se provocó el evento, número de secuencia, el mensaje del evento, y Detalles del evento.
WebManagementEventEl evento de base de clase para eventos de administración, tales como duración de la aplicación, solicitud, error y sucesos de auditoría.
WebHeartbeatEventEl evento generado por la aplicación en regular intervalos para capturar información de estado en tiempo de ejecución útil.
WebAuditEventLa clase base para los eventos de auditoría de seguridad, que se utilizan para marcar las condiciones, como un error de autorización, error de descifrado, etc.
WebRequestEventLa clase base para todos los eventos de solicitud de información.
WebBaseErrorEventLa clase base para todos los eventos que indican error condiciones.
Los tipos de proveedores disponibles permiten enviar los resultados de evento en Visor de sucesos de SQL Server, Windows Management Instrumentation (WMI), y correo electrónico. Los proveedores preconfigurados y asignaciones del evento reducen la cantidad de trabajo necesario para obtener un resultado de evento iniciado sesión.

ASP.NET 2.0 utiliza el evento Registro proveedor out-of-the-box para registrar los eventos basados en dominios de aplicación iniciando y detener, así como de registro cualquiera excepciones no controladas. Esto le ayuda a protegerse Algunos de los escenarios básicos. Por ejemplo, supongamos que la aplicación inicia una excepción, pero el usuario no guarda el error y no se puede reproducirlo. Con la regla de registro de eventos predeterminado, sería capaz de reunir la información de excepción y la pila para obtener una idea más clara de qué tipo de error se ha producido. O bien, si la aplicación está perdiendo el estado de sesión, puede buscar la Registro de sucesos para determinar si se recicla el dominio de aplicación y por qué el dominio de aplicación se detuvo en primer lugar.

Además, la salud sistema de supervisión es extensible. Por ejemplo, puede definir los eventos Web personalizados, desencadenará dentro de la aplicación y, a continuación, defina una regla para enviar el evento información a un proveedor, como el correo electrónico. Esto le permite asociar fácilmente la instrumentación a los proveedores de supervisión de estado. Otro ejemplo: se puede desencadenar un evento cada vez que un pedido se procesa y configurar una regla que envía cada evento a la base de datos de SQL Server. También se puede desencadenar un evento cuando un usuario no puede iniciar sesión varias veces en una fila y ha configurado el evento para utilizar el proveedores basados en el correo electrónico.

La configuración de los proveedores predeterminados y eventos se almacena en el archivo Web.config global. El archivo Web.config global almacena toda la configuración basada en Web que se almacenaron en el archivo Machine.config en ASP.NET 1 x. El archivo Web.config global se encuentra en la siguiente directorio:
%windir%\Microsoft.NET\Framework\v2.0.*\config\Web.config
La sección <healthMonitoring>del archivo Web.config global proporciona una configuración de la configuración predeterminada. Puede reemplazar esta configuración o configurar su propia configuración mediante la implementación de la <healthMonitoring> sección en el archivo Web.config de la aplicación.

El sección de <healthMonitoring>del archivo Web.config global contiene la los siguientes elementos: </healthMonitoring></healthMonitoring></healthMonitoring>
  • proveedores Contiene los proveedores de configurado para el Visor de sucesos, WMI y SQL Servidor.
  • eventMappings Contiene asignaciones de las distintas clases de WebBase. Puede extender Esta lista si se genera su propia clase de evento. Generar su propia clase de evento proporciona una granularidad más fina a través de los proveedores de a que enviar información. Para ejemplo, podría configurar las excepciones no controladas se envíe a SQL Server, durante el envío de eventos personalizados propios para enviar por correo electrónico.
  • reglas Vincula eventMappings al proveedor.
  • el almacenamiento en búfer Se utiliza con los proveedores de SQL Server y correo electrónico para determinar con qué frecuencia Para vaciar los eventos para el proveedor.
A continuación es un ejemplo de código del archivo Web.config global.
<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>

Ejemplo de proveedor

En este ejemplo de proveedor contiene los siguientes archivos:
  • ViewEvents.aspx el archivo : desencadena el evento de web personalizado MyEvent en el evento click del botón Page_Load y el suceso de registro . Tiene un control GridView que utiliza la conexión de base de datos en el Archivo Web.config para enumerar los sucesos registrados a SQL Server.

    No olvide configurar la cadena de conexión en el archivo Web.config para que apunte a la base de datos ASPNETDB .
  • El archivo Web.config : tiene todos los distintos proveedores y las reglas configuradas y convertido en comentarios. Quite los comentarios de la regla que desea probar y después busque el Páginas default.aspx y ViewEvent.aspx para ver cómo queda lo que aparece al igual que.
  • MyEvent.cs el archivo : se encuentra en la carpeta App_Data. Esto se utiliza en el Página de ViewEvents.aspx que se activará un evento personalizado.
  • Archivo Default.aspx the ? inicie una excepción System.NullReferenceException si desea no qué un controlada registros de excepciones.
  • EmailTemplateTest.aspx el archivo : se utiliza para obtener el ejemplo TemplateemailProvider. El archivo de código subyacente para el archivo EmailTemplateTest.aspx tiene líneas de código se puede quitar los comentarios, que hará que la página se iniciará una excepción.

Cómo se almacenan los sucesos al Visor de sucesos

Como he mencionado anteriormente, el proveedor para registrar sucesos en el Visor de sucesos está configurado para usted en el archivo Web.config global. De forma predeterminada, se registran todos los eventos en función de WebBaseErrorEvent y WebFailureAuditEvent . Puede agregar reglas adicionales al registro adicional información para el registro de sucesos. Por ejemplo, si desea registrar todos los eventos (es decir, todos los eventos en función de WebBaseEvent), puede agregar la regla siguiente al archivo Web.config:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="EventLogProvider" profile="Critical"  />
	</rules>
</healthMonitoring>
Esta regla vincularía el mapa de eventos de Todos los eventos para el proveedor de registro de sucesos. Ambos eventMapping y la proveedor de se incluyen en el archivo Web.config global. A continuación, puede utilizar el Página de ViewEvents.aspx que se desencadenan los eventos generados por la búsqueda de la página. El página también desencadenará el evento personalizado MyEvent en el evento Page_Load y haga clic en un botón .

Para ver el tipo de datos generados, examinar el Página default.aspx. Esto producirá una excepción System.NullReferenceException y se registra el suceso siguiente en el evento Visor:

Tipo de suceso: advertencia
Origen de eventos: ASP.NET 2.0.50601.0
Categoría del suceso: Evento de Web
ID. de suceso: 1311
Fecha: 16/8/2005
Tiempo: 9: 37: 44 P.M.
Usuario: N/D
Equipo: Nombre del equipo
Descripción:
Código de evento: 3005
Mensaje de suceso: se ha producido una excepción no controlada.
Hora del evento: 16/8/2005 9: 37: 44 P.M.
Hora del evento (UTC): 17/8/2005 2: 37: 44 AM
ID. de suceso: 88838b4e73cf4a0d9a36ac737ff9d1a0
Secuencia de eventos: 39
Aparición de eventos: 1
Código de detalle de evento: 0
Información de la aplicación: dominio de aplicación: d047d537-2-127687190240098660
Nivel de confianza: completo
Aplicación Virtual Ruta de acceso: /WebSite3
Ruta de la aplicación: Física rutaDeAcceso
Nombre del equipo: Equipo nombre
Procesar la información: ID. de proceso: 3776
Nombre del proceso: WebDev.WebServer.EXE
Nombre de cuenta: dominio\usuario
Información de la excepción: Tipo de excepción: excepción NullReferenceException
Mensaje de excepción: referencia a objeto no se establece en una instancia de un objeto.
Solicitar información: dirección URL de solicitud: http://localhost:1698/WebSite3/default.aspx
Ruta de acceso de la solicitud: /WebSite3/default.aspx
Dirección de host de usuario: 127.0.0.1
Usuario: Dominio\usuario
Se ha autenticado: True
Tipo de autenticación: NTLM
Subproceso nombre de cuenta: dominio\usuario
Información de subproceso:
ID. de subproceso: 8
Subproceso nombre de cuenta: dominio\usuario
Está representando: False

Seguimiento de la pila: en _Default.Page_Load (object sender, EventArgs e) en c:\Documents y Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:Line 15
en System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, objeto o, objeto t, EventArgs e)
en el System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e)
en System.Web.UI.Control.OnLoad (EventArgs e) en System.Web.UI.Control.LoadRecursive()
en el System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Detalles de evento personalizado: para obtener más información información, consulte Centro de ayuda y soporte técnico en http://support.Microsoft.com.

Registra todos los sucesos al registro de sucesos genera los eventos informativos. El suceso siguiente muestra la dirección URL autorización de los siguientes para la solicitud de página:

Evento Tipo: información
Origen del suceso: ASP.NET 2.0.50601.0
Categoría de sucesos: Web Evento
ID. de suceso: 1314
Fecha: 8/16/2005
Tiempo: 11: 04: 44 P.M.
Usuario: N/D
Equipo: Equipo nombre
Descripción:
Código de evento: 4003
Mensaje de suceso: dirección URL autorización correcta para la solicitud.
Hora del evento: 16/8/2005 11: 04: 44 P. M.
Hora del evento (UTC): 17/8/2005 4: 04: 44 AM
ID. de suceso: fec3d73fba0247eaba425e5ccfada18e
Secuencia de eventos: 2
Aparición de eventos: 1
Código de detalle de evento: 0
Información de la aplicación:
Dominio de aplicación: d047d537-1-127687250829701433
Nivel de confianza: completo
Aplicación Virtual Ruta de acceso: /WebSite3
Ruta de la aplicación: C:\Documents y Settings\user\Desktop\WebEvents\WebSite3\WebSite3\
Nombre del equipo: Nombre del equipo
Información de proceso:
Proceso ID: 2292
Nombre del proceso: WebDev.WebServer.EXE
Nombre de cuenta: Dominio\usuario
Información de la solicitud:
Dirección URL de solicitud: http://localhost:2087/WebSite3/default.aspx
Ruta de acceso de la solicitud: /WebSite3/default.aspx
Dirección de host de usuario: 127.0.0.1
Usuario: Dominio\usuario
Se ha autenticado: True
Tipo de autenticación: NTLM
Subproceso nombre de cuenta: dominio\usuario

Detalles de evento personalizado:
Para obtener más información información, consulte Centro de ayuda y soporte técnico en http://support.Microsoft.com.

Cómo almacenar eventos de SQL Server

Este método utiliza la base de datos ASPNETDB , que genera la herramienta Aspnet_regsql.exe. El proveedor predeterminado utiliza la cadena de conexión de LocalSqlServer, que utiliza ya sea una base de datos basada en archivo en la carpeta App_data o la instancia local SQLExpress de SQL Server. La cadena de conexión de LocalSqlServer y la SqlProvider son configurado en el archivo Web.config global.

La LocalSqlServer cadena de conexión en el archivo Web.config global tiene este aspecto:
<connectionStrings>
	<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>
Si desea utilizar otro servidor de SQL Server, deberá utilizar el Herramienta Aspnet_regsql.exe, que puede encontrarse en el carpeta %windir%\Microsoft.NET\Framework\v2.0.*\Aspnet_regsql.exe. Utilice el La herramienta Aspnet_regsql.exe para generar una base de datos ASPNETDB personalizada en el servidor de SQL Server, a continuación, agregue la cadena de conexión a su archivo .config de las aplicaciones de archivo y, a continuación, agregar un proveedor mediante el uso de la nueva cadena de conexión. Una vez que tiene la base de datos ASPNETDB creado, deberá definir una regla para vincular un eventMapping para la sqlProvider.

Para configurar una base de datos personalizado Siga estos pasos:
  1. Generar una base de datos ASPNETDB .
    1. Ejecute aspnet_regsql.exe ? w y recorra el Asistente para.
    2. Ejecute el comando para automatizar el proceso: Aspnet_regsql ?A ? s w SQL Server -E.
  2. Agregar una cadena de conexión que señala a la base de datos, por lo que que este aspecto:
    <connectionStrings>
    	<add name="MYASPNETDB" connectionString="Server=<SQL Instance>;Integrated Security=SSPI;Database=aspnetdb"/>
    </connectionStrings>
  3. Agregar un proveedor para utilizar la cadena de conexión MYASPNETDB, de modo que que este aspecto:
    <healthMonitoring>
    	<providers>
    		<add name="MySqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" connectionStringName="MYASPNETDB" maxEventDetailsLength="1073741823" buffer="false"/>
    	</providers>
    </healthMonitoring>
Si se utiliza el valor predeterminado SqlProvider o se configura su propio proveedor, debe agregar una regla vincula el proveedor con un mapa de eventos. El regla siguiente relaciona el nuevo proveedor que acaba de crear al mapa de eventos de Todos los eventos . Esta regla registrará todos los eventos en función de WebBaseEvent y enviarlos a la MySqlWebEventProvider que va a utilizar el Cadena de conexión de MYASPNETDB. El código siguiente agrega una regla para vincular el proveedor con un mapa de eventos:
<healthMonitoring>
	<rules>
		<add name="All Events" eventName="All Events" provider="MySqlWebEventProvider" profile="Critical"/>
	</rules>
</healthMonitoring>
Si desea sólo enviar errores a SQL Server, puede agregar el siguiente regla:
<add name="All Errors" eventName="All Errors" provider="MySqlWebEventProvider" profile="Critical"/>

Cómo reenviar los eventos de WMI

También puede reenviar los eventos a WMI. Es el proveedor WMI configura en el archivo Web.config global de forma predeterminada.

El ejemplo de código siguiente agrega una regla para reenviar los eventos a WMI:
<providers>
	<add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
Debe agregar una regla para asociar un eventMapping para la proveedor y también una aplicación de agente de escucha WMI para estar atento a los eventos. El ejemplo de código siguiente agrega una regla para crear el proveedor WMI de un vínculo al mapa de eventos de Todos los eventos :
<rules>
	<add name="All Events" eventName="All Events" provider="WmiWebEventProvider" profile="Critical"  />
</rules>
La aplicación de consola de ejemplo SampleASPNET utiliza el objeto ManagementEventWatcher para controlar eventos y mostrar en la consola ventana.
Para utilizar SampleASPNET, siga estos pasos:
  1. Iniciar SampleASPNET.exe.
  2. Explorar la página de ViewEvents.aspx; Cuando lo haga, verá eventos que aparecen en la aplicación de consola.
  3. Haga clic en Iniciar evento Button_Click. La página devolverá los datos y verá los sucesos adicionales también registrados.
Contraer esta imagenAmpliar esta imagen
893664
Nota Si está supervisando eventos en un equipo remoto, la escucha aplicación necesita que se esté ejecutando en ese equipo como una cuenta con admin acceso.

Cómo reenviar sucesos a enviar por correo electrónico

También puede reenviar eventos a enviar por correo electrónico. Esto le permitirá obtener información acerca de la aplicación directamente en el que se la (probablemente desborde) Bandeja de entrada. Tenga cuidado con las reglas de qué eventos que se asigna a su proveedor de correo electrónico, como usted puede forma no intencionada enviarse a sí mismo una gran cantidad de información que puede resultar más adecuado adecuado para SQL Server o el registro de sucesos.

Hay dos correo electrónico proveedores, SimpleMailWebEventProvider y TemplatedMailWebEventProvider. Cada tiene los mismos atributos de configuración, con la excepción de la "plantilla" y atributos de "detailedTemplateErrors", que sólo están disponibles en el TemplatedMailWebEventProvider.

Nota Ninguno de estos proveedores de correo electrónico está configurado para usted. Este necesita agregar al archivo Web.config.

La diferencia principal entre Estos proveedores de correo dos electrónico es que SimpleMailWebEventProvider envía mensajes de correo electrónico una plantilla genérica que no se puede modificar. Agrega el archivo Web.config de ejemplo Este proveedor de correo electrónico a la lista de proveedores configurados mediante el uso de los siguientes regla:
<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"/>
Para vincular el proveedor de correo electrónico al mapa de eventos de Todos los eventos también se agrega la siguiente regla:
<add name="All Events" eventName="All Events" provider="mySimple-mailWebEventProvider" profile="Critical"/>
El mensaje de alerta de correo electrónico es similar al siguiente:
Asunto: Notificación de eventos 12, parte 1: Web Se recibió en un evento EventsMicrosoft.Samples.WebEvents.MyEvent / WebSite3

** Información de la aplicación **
---------------
Dominio de aplicación: d047d537-9-127687218865923053 Nivel de confianza: ruta de acceso Virtual completa aplicación: ruta de la aplicación WebSite3: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ máquina nombre:<computer name="">

** Eventos **
---------------
Evento código: 100010
Mensaje de suceso: Button1_Click
Hora del evento: 16/8/2005 10: 12: 52 PM
Hora del evento (UTC): 17/8/2005 3: 12: 52 A.M.
ID. de suceso: secuencia de eventos de 6e5cd252d6114a9e98687598dc6b5d50: 12 ocurrencia de evento: evento 5 código de detalle: 0

Evento personalizado Detalles:

---------------</computer>
Ésta es una alerta de correo electrónico mensaje que indica una excepción no controlada:
Asunto: Notificación de eventos 7, parte 1: Web Se recibió en un evento EventsSystem.Web.Management.WebRequestErrorEvent / WebSite3

** Información de la aplicación **
---------------
Dominio de aplicación: d047d537-5-127687293149504903 Nivel de confianza: ruta de acceso Virtual completa aplicación: ruta de la aplicación WebSite3: C:\Documents and Settings\user\Desktop\WebEvents\WebSite3\WebSite3\ máquina nombre:<computer name="">

** Eventos **
---------------
Evento código: 3005
Mensaje de suceso: se ha producido una excepción no controlada.
Evento tiempo: 17/8/2005 12: 17: 37 A.M.
Hora del evento (UTC): 17/8/2005 5: 17: 37 AM
ID. de suceso: secuencia de eventos 14b7f24102e140bbbae302d80e5a5f36: evento 7 repetición: código de detalle de 1 evento: 0

Información de proceso:
Proceso ID: 2292
Nombre del proceso: WebDev.WebServer.EXE
Nombre de cuenta: Dominio\usuario

Información de la excepción:
Tipo de excepción: System.NullReferenceException de.
Mensaje de excepción: referencia de objeto no establecida a una instancia de un objeto.

Información de la solicitud:
Dirección URL de solicitud: http://localhost:2087/WebSite3/default.aspx
Ruta de acceso de la solicitud: /WebSite3/default.aspx
Dirección de host de usuario: 127.0.0.1
Usuario: Dominio\usuario
Se ha autenticado: True
Tipo de autenticación: NTLM
Subproceso nombre de cuenta: dominio\usuario

Información de subproceso:
ID. de subproceso: 7
Nombre de cuenta del subproceso: dominio\usuario
Está representando: False
Pila seguimiento: en _Default.Page_Load (Object sender, EventArgs e) en c:\Documents y Settings\user\Desktop\WebEvents\WebSite3\WebSite3\Default.aspx.cs:Line 15
en System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, objeto o, objeto t, EventArgs e)
en el System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e)
en System.Web.UI.Control.OnLoad (EventArgs e) en System.Web.UI.Control.LoadRecursive()
en el System.WebUI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</computer>
TemplatedMailWebEventProvider permite especificar una página ASPX como una plantilla--usted acertó--. El resultado de la página ASPX se utiliza en el cuerpo del correo electrónico, lo que le permite a personalizar la apariencia de los datos que reciba.

La aplicación de ejemplo el código siguiente se utiliza para agregar TemplatedMailWebEventProvider para el archivo Web.config archivo y especifique la página de EmailTemplateTest.aspx como la plantilla. (El EmailTemplateTest.aspx página ejecuta un bucle a través de los eventos disponibles en el búfer y los muestra en una tabla.)
<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" />
El mensaje de alerta de correo electrónico es similar al siguiente:
Asunto: La notificación de eventos de 3, parte 1: 10 eventos recibidos en / WebSite3

Código de tiempo de aparición fuente detalle código mensaje
4 System.Web.Security.UrlAuthorizationModule 17/8/2005 12: 40: 45 A.M. 4003 0 URL autorización correcta para la solicitud.
4 8/17/2005 12: 40: 45 A.M. 4004 0 La autorización de archivos correcta para la solicitud.
7 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 A.M. 100010 0 cargar la página de ejemplo de webevent
8 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 A.M. 100010 0 Button1_Click
5 SystemWeb.Security.UrlAuthorizationModule 17/8/2005 12: 40: 45 A.M. 4003 0 URL autorización correcta para la solicitud.
5 8/17/2005 12: 40: 45 A.M. 4004 0 La autorización de archivos correcta para la solicitud.
9 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 A.M. 100010 0 cargar la página de ejemplo de webevent
10 ASP.ViewEvents_aspx 17/8/2005 12: 40: 45 A.M. 100010 0 Button1_Click
6 System.Web.Security.UrlAuthorizationModule 17/8/2005 12: 40: 46 A.M. 4003 0 URL autorización correcta para la solicitud.
6 8/17/2005 12: 40: 46 A.M. 4004 0 La autorización de archivos correcta para la solicitud.
En ambos casos, si el atributo buffer es false, el correo electrónico va a contener sólo un evento. Con el almacenamiento en búfer establecido en true, también debe especificar un bufferMode, lo que indica la frecuencia de vaciar el búfer. Hay algunos bufferModes predeterminado en la plantilla global Archivo Web.config.

Si detailedTemplateErrors = "true", a continuación, los errores que se producen cuando se ejecuta la plantilla se enviarán en el cuerpo de la correo electrónico. Si detailedTemplateErrors = "false", se envía un error genérico.

A error detallado que se produce por EmailTemplateTest.aspx tiene el siguiente aspecto:
Error de servidor en ' / WebSite3' aplicación.

Una no controlada se produjo una excepción durante la ejecución de la página de plantilla utilizada para crear Esta notificación de evento. Fueron los eventos 1 que formaban parte de este mensaje descarta.

Descripción: Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Por favor, revise el seguimiento de pila para obtener más información información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Web.HttpException: can de estado de sesión sólo se utiliza cuando enableSessionState se establece en true, ya sea en una configuración archivo o en la directiva de página. También asegúrese de que System.Web.SessionStateModule o un módulo de estado de sesión personalizado está incluido en el <configuration>\<system.web>\<httpModules> sección en la configuración de la aplicación.

Archivo de código fuente: c:\Documents y Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs Línea: 17

Seguimiento de la pila: [HttpException (0 x 80004005): el estado de sesión puede sólo se utiliza cuando enableSessionState se establece en true, ya sea en una configuración archivo o en la directiva de página. También asegúrese de que System.Web.SessionStateModule o un módulo de estado de sesión personalizado está incluido en el <configuration>\<system.web>\<httpModules> sección en la configuración de la aplicación.]
System.Web.UI.Page.get_Session() +146
e-mailTemplateTest.Page_Load(Object sender, EventArgs e) en c:\Documents y Settings\user\Desktop\WebEvents\WebSite3\WebSite3\e-mailTemplateTest.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr FP, objeto o, objeto 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 (0 x 80004005): excepción de tipo Fue 'System.Web.HttpUnhandledException' se produce.]
System.Web.UI.Page.HandleError (Exception e) +929
System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7864
System.Web.UI.Page.ProcessRequest (opción booleana includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +229
System.Web.UI.Page.ProcessRequest() + 12
System.Web.UI.Page.ProcessRequest (HttpContext context) + 80
System.Web.HttpServerUtility.ExecuteInternal (controlador de IHttpHandler, TextWriter writer, Boolean preserveForm, ruta de acceso de VirtualPath, VirtualPath ruta del archivo, cadena physPath, error de excepción, queryStringOverride de cadena) +1012

[HttpException (0 x 80004005): solicitud de error de elemento secundario que se está ejecutando para / WebSite3/e-mailTemplateTest.aspx.]
System.Web.HttpServerUtility.ExecuteInternal (IHttpHandler controlador, TextWriter writer, preserveForm booleano, ruta de acceso de VirtualPath, VirtualPath ruta del archivo, cadena physPath, error de excepción, queryStringOverride de cadena) +1525
System.Web.HttpServerUtility.Execute (ruta de acceso de cadena, TextWriter writer Booleano preserveForm) +754
System.Web.HttpServerUtility.ExecuteLocalRequestAndCaptureResponse (String ruta de acceso, TextWriter writer, errorFormatterGenerator de ErrorFormatterGenerator) + 249</httpModules></system.web></configuration></httpModules></system.web></configuration>
Si el atributo es false y se produce un error, sólo usted podrá aparece un mensaje de error genérico que tiene este aspecto:
Servidor Error en ' / WebSite3' aplicación.

Se ha producido una excepción no controlada durante la ejecución de la página de plantilla utilizada para crear este evento notificación. Fueron los eventos de 8 que formaban parte de este mensaje descarta.

Descripción: La configuración actual impide que el detalles de la excepción que se incluyan en este mensaje. Agregar el "detailedTemplateErrors = true" atribuir a la configuración del proveedor para habilitar detalles de la excepción que se notificará.
Nota Para los atributos relacionados con el almacenamiento en búfer, cada vaciado daría lugar a una notificación. Si el vaciado contiene más eventos que se maxEventsPerMessage permite, la notificación se dividan en varios mensajes de correo electrónico, pero se todos sigan Considerando que la misma notificación. Por ejemplo, un vaciado genera 13 eventos pero maxEventsPerMessage sólo permite que cinco. Recibirá tres mensajes de correo electrónico: los dos primeros mensajes de correo electrónico cada contendrá cinco eventos y el tercer mensaje incluirá tres eventos.

Si hay mensajes de correo electrónico permitido por maxMessagesPerNotification , se quitarán algunos eventos. Por ejemplo, si establece maxMessagesPerNotification para dos y utilizar el mismo maxEventsPerMessage que la mostrada anteriormente, sólo recibiría dos mensajes de correo electrónico. Los eventos que sería en el tercero se eliminan el correo electrónico. Las líneas de unión o truncamiento de las notificaciones se anotarán en uno de los mensajes de correo electrónico para el proveedor de correo simple. La parte superior del mensaje de correo mostrará lo siguiente:
** Las advertencias **
---------------
10 Hechos restante para que esto período de notificación se descartará porque el número máximo de mensajes permitido por notificación se ha superado. (ID. de advertencia: 101)
Desde tiene control sobre el formato del correo electrónico para el proveedor con plantilla, tiene para buscar líneas de unión/truncamiento usted mismo y determinar si se debe incluir los datos en el correo electrónico.

Nota Los proveedores de correo utilizan System.Net.Mail, por lo que tendrá que configurar System.Net.Mail en el archivo Web.config.

Para obtener más información información sobre el esquema de configuración de ASP.NET, visite el siguiente sitio Web sitio:
healthMonitoring Element (ASP.NET Settings Schema)
http://msdn2.Microsoft.com/library/2fwh2ss9(en-us,VS.80).aspx
Para obtener más información acerca de la supervisión de estado en ASP.NET 2.0, visite el siguiente sitio Web de Microsoft:
El uso de supervisión de estado en ASP.NET 2.0
http://msdn2.Microsoft.com/en-us/library/ms998306.aspx
Como siempre, no dude en enviar ideas sobre temas que desee abordarse en próximas columnas o en la Base de conocimiento mediante el uso de la Solicitarlo formulario.

Propiedades

Id. de artículo: 893664 - Última revisión: viernes, 30 de noviembre de 2012 - Versión: 5.0
La información de este artículo se refiere a:
  • Microsoft ASP.NET 2.0
Palabras clave: 
kbhowto kbasp kbmt KB893664 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 893664
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

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