Archivo de la etiqueta: elmah

Envío de Mails con ELMAH

El envío de mails con ELMAH es una de las muchas virtudes que tiene este sistema de control de errores. En este post intentaré explicar cómo se configura.

Nota: partiremos de una instalación correcta de ELMAH. Si no sabes instalar y configurar ELMAH te recomiendo este post.

Paso 1: configurar una cuenta de correo en el web.config.

En realidad este paso no es propio de ELMAH, en el web.config se puede establecer muchos parámetros que puedes o no utilizar cuando desarrolles tus aplicaciones o software.

Para añadir una cuenta de correo deberemos abrir una sección llamada <system.net> dentro de la raíz <configuration> del web.config.

Como una imagen vale más que mil palabras aquí está la configuración completa:

Envio de mails con ELMAH

Como vemos establecemos el servidor  smtp, el puerto, el nombre de usuario y la contraseña de la cuenta.

Paso 2. Indicar a ELMAH datos del envío de correo.

El segundo paso sí que tiene lugar en la sección propia de ELMAH dentro del web.config. De nuevo podemos en una imagen como configurarlo:

Configurar envio mail con elmah

En la imagen vemos que estableceremos el campo «from» (dirección remitente del correo), el campo «to» (destinatario) y el asunto «subject».

Si nos fijamos el asunto tiene el código {0} que indica que en esa posición se sustituirá el mensaje del error de tal modo que el destinatario podrá ver de una manera rápida en que consiste el problema.

Modificar url de acceso elmah axd

Por seguridad es mejor cambiar la url donde se accederá a los errores de aplicación de ELMAH. Como sabemos en el momento de la instalación la url de acceso es la siguiente:

http://»misitio.com»/elmah.axd

Si queremos cualquier otra como por ejemplo:

http://»misitio.com»/mis_errores.axd

Deberemos reemplazar en el web.config todas las ocurrencias que encontremos de «elmah.axd» por «mis_errores.axd»

Acceso remoto en ELMAH

El acceso remoto en ELMAH por defecto está desactivado.

Esto quiere decir que solo podremos acceder a nuestra pantalla de monitorización si accedemos desde la misma IP donde está el hosting de nuestra aplicación.

Dependiendo si queremos acceder únicamente desde nuestro equipo servidor o desde cualquier equipo tenemos la posibilidad de configurarlo a través del web.config.

Dentro de la sección de configuración <elmah> existe una etiqueta <security> donde su propiedad «allowremoteaccess» nos permitirá activar o desactivar el acceso remoto.

acceso remoto elmah

 

Instalar y configurar ELMAH

Como todos sabemos el trabajo de un programador no es perfecto y por eso, haciendo caso al refrán,  es mejor prevenir que curar.  Un buen desarrollador de software tendrá en cuenta crear un log para monitorizar aquellos errores de programación y de cualquier otro tipo que puedan suceder en la aplicacíón que se desarrolla.

Al respecto el programador tiene varias opciones:

  • Crearse por sí mismo un sistema de control de errores dentro de su aplicación. Si es hábil podrá migrar este sistema a futuros desarrollos.
  • Utilizar librerías ya implementadas que cubren la funcionalidad de control de errores.

En mi caso yo recomiendo ELMAH (Error Logging Modules and Handlers) que permite crear un sistema automático de guardado de errores y además crear la infraestructura (tablas y procedimientos en base de datos y librerías .Net) para utilizarlas como servicio de logging.

Este post intentará explicar cómo instalar y configurar ELMAH para una aplicación o sitio web en asp.net.

Paso 1. Descargar las librerías de ELMAH.

El primer paso que deberás hacer es descargarte las librerías de ELMAH en tu sitio web asp.net. Esto lo puedes hacer manualmente (en este enlace) o mediante el administrador de paquetes NuGet de Visual Studio (Menú Tools – Library Package Manager – Manage NuGet Packages for Solution…)

Instalar y configurar ELMAH

En la ventana emergente buscaremos en nuget.org (Online) con la palabra clave ELMAH y lo instalaremos en nuestra aplicación Web.

Una vez instalado veremos que nos ha referenciado algunas librerías nuevas y nos habrá modificado el web.config.

Paso 2. Ejecutar el script de la base de datos.

ELMAH puede utilizar una base de datos sqlserver para guardar los errores que se van generando. El siguiente paso será crear la estructura de la base de datos a través de un script que podremos descargar aquí.

Paso 3. Utilizar la monitorización de errores.

En este punto ya podremos ver una de las ventajas de ELMAH. Utilizaremos la url http://»misitio.com»/elmah.axd para monitorizar los errores por pantalla.

Por ejemplo,

si lanzamos una excepción manualmente en nuestro código…

ELMAH Excepción manual

lo ejecutamos y después de lanzado el error vamos a la url http://»misitio.com»/elmah.axd veremos una pantalla donde aparece lo siguiente:

Error monitorización ELMAH

Es útil, pero en este punto el error no se ha guardado en la base de datos, de hecho si no te interesa guardarlo en un almacenamiento persistente podrás saltarte el paso 2 y los siguientes.

Paso 4. Configurar la base de datos.

Para enlazar ELMAH con la base de datos es necesario indicarle cual es la cadena de conexión. Para ello deberemos ir al web.config y añadir la cadena de conexión dentro de la sección que define la etiqueta <elmah>

ELMAH cadena de conexión

Si nos fijamos en la etiqueta errorLog, se le está indicando que para el tipo de módulo sqlerrorlog utilice la cadena de conexión con el nombre «DefaultConnection» que la hemos definido previamente en el web.config.

Si la cadena de conexión es correcta los errores se empezarán a guardar en este punto en la base de datos.

En futuros posts veremos algunas configuraciones extra que podemos utilizar con ELMAH como son el envío de mails, seguridad, etc…