Una característica interesante y muchas veces olvidada por
los desarrolladores de ASP.NET es la facilidad de utilizar el registro de
eventos para buscar posibles soluciones a errores ocurridos en nuestra aplicación. Por
defecto los eventos son registrados en el log de Windows, pero muchas veces no tenemos acceso a él, por lo que pudiésemos utilizar una base de
datos o bien el envío por correo de ellos.
Paso 1. - Definimos
en el Web.config la configuración para
el monitoreo.
<healthMonitoring
enabled="true" heartbeatInterval="10">
<rules>
<add name="TheRule" eventName="Heartbeats" provider="SqlWebEventProvider"/>
<add name="TheSecondRule" eventName="All Errors" provider="SqlWebEventProvider"/>
</rules>
</healthMonitoring>
Donde la primera regla comprobara cada intervalo definido en
heartbeatInterval el
estado de nuestra aplicación y lo enviara a una base de datos. La segunda regla enviara a una base de datos también la información
de los errores ocurridos.
Paso 2 - La configuración de la base de datos:
<add name="LocalSqlServer" connectionString="data source=MISERVER;database=aspnetdb;
Integrated Security=SSPI" />
La cual podemos definirla por medio del promt con el commando: aspnet_regsql
y luego siguiendo el asistente configuramos la base de datos.
Paso 3: Enviar por correo los errores
Para ello tendríamos que determinar una regla que defina lo
que vamos a enviar y un proveedor de correo.
<healthMonitoring enabled="true" heartbeatInterval="10" >
<rules>
<add name="TheRule" eventName="Heartbeats" provider="SqlWebEventProvider"/>
<add name="TheSecondRule" eventName="All Errors" provider="SqlWebEventProvider"/>
<add name="TheEmailRule" eventName="All Errors" provider="EmailProvider"/>
</rules>
<providers>
<add name="EmailProvider"
type="System.Web.Management.SimpleMailWebEventProvider"
from="admin@upoli.edu.ni" to="yo.yo@gmail.com" buffer="false" />
</providers>
</healthMonitoring>
Y luego configurar nuestro smtp disponible para el envio de
correo:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="bernardo@gmail.com"
>
<network host="smtp.gmail.com" port="465" userName="bernardo@gmail.com" password="mipassword"/>
</smtp>
</mailSettings>
</system.net
A continuación presentamos los posibles eventos más comunes
que podamos auditar:
"HeartBeats"
"Application
Lifetime Events"
"Request
Processing Events"
"All Errors"
"Infrastructure Errors"
"Request Processing
Errors"
"Failure Audits"
"Success Audits"
"All Audits"
"All Audits"
No hay comentarios:
Publicar un comentario