Seguimiento, depuración, manejo de errores a nivel de página de Asp.Net (ejemplo)

En cualquier aplicación, es probable que se produzcan errores durante el proceso de desarrollo. Es importante poder descubrir errores en una etapa temprana.

En Visual Studio, es posible hacer esto para aplicaciones ASP.Net. Visual Studio se usa para depurar y tiene técnicas de manejo de errores para ASP.Net.

En este tutorial, aprenderá:

  • ¿Qué es la depuración en ASP.NET?
  • ¿Qué es el rastreo en ASP.NET?
  • Seguimiento de nivel de página
  • Manejo de errores: visualización de una página de error personalizada
  • Excepción no controlada de ASP.NET
  • Registro de errores de ASP.NET

¿Qué es la depuración en ASP.NET?

La depuración es el proceso de agregar puntos de interrupción a una aplicación. Estos puntos de interrupción se utilizan para pausar la ejecución de un programa en ejecución. Esto permite al desarrollador comprender lo que está sucediendo en un programa en un momento determinado.

Tomemos un ejemplo de programa. El programa muestra una cadena "Estamos depurando" al usuario. Supongamos que cuando ejecutamos la aplicación, por alguna razón, la cadena no se muestra. Para identificar el problema, necesitamos agregar un punto de interrupción. Podemos agregar un punto de interrupción a la línea de código que muestra la cadena. Este punto de interrupción detendrá la ejecución del programa. En este punto, el programador puede ver lo que posiblemente esté fallando. El programador rectifica el programa en consecuencia.

Aquí, en el ejemplo, usaremos nuestra 'DemoApplication' que fue creada en capítulos anteriores. En el siguiente ejemplo, veremos

  • Cómo hacer que la aplicación de demostración muestre una cadena.
  • Cómo agregar puntos de interrupción a una aplicación.
  • Cómo depurar la aplicación usando este punto de interrupción.

Paso 1) Primero asegurémonos de tener nuestra aplicación web abierta en Visual Studio. Asegúrese de que DemoApplication esté abierta en Visual Studio.

Paso 2) Ahora abra el archivo Demo.aspx.cs y agregue la siguiente línea de código.

  • Solo estamos agregando la línea de código Response.Write para mostrar una cadena.
  • Entonces, cuando la aplicación se ejecute, debería mostrar la cadena "Estamos depurando" en el navegador web.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("We are debugging");}}}

Paso 3) Ahora agreguemos un punto de interrupción. Un punto de interrupción es un punto en Visual Studio donde desea que se detenga la ejecución del programa.

  1. Para agregar un punto de interrupción, debe hacer clic en la columna donde desea que se inserte el punto de interrupción. Entonces, en nuestro caso, queremos que nuestro programa se detenga en la línea de código "Response.Write". No es necesario agregar ningún comando para agregar un punto de interrupción. Solo necesita hacer clic en la línea en la que desea agregar un punto de interrupción.
  2. Una vez hecho esto, notará que el código se marca en rojo. Además, aparece una burbuja roja en la columna junto a la línea de código.

Nota: - Puede agregar varios puntos de interrupción en una aplicación

Paso 4) Ahora necesita ejecutar su aplicación usando el modo de depuración. En Visual Studio, elija la opción de menú Depurar-> Iniciar depuración.

Producción:-

Cuando realice todos los pasos correctamente, la ejecución del programa se interrumpirá. Visual Studio irá al punto de interrupción y marcará la línea de código en amarillo.

Ahora, si el programador siente que el código es incorrecto, se puede detener la ejecución. Luego, el código se puede modificar en consecuencia. Para continuar con el programa, el programador debe hacer clic en el botón F5 del teclado.

¿Qué es el rastreo en ASP.NET?

El rastreo de aplicaciones permite ver si alguna de las páginas solicitadas da como resultado un error. Cuando el rastreo está habilitado, se agrega una página adicional llamada trace.axd a la aplicación. (Ver imagen a continuación). Esta página se adjunta a la solicitud. Esta página mostrará todas las solicitudes y su estado.

Veamos cómo habilitar el seguimiento de una aplicación.

Paso 1) Trabajemos en nuestra 'DemoApplication'. Abra el archivo web.config desde el Explorador de soluciones.

Paso 2) Agregue la siguiente línea de código al archivo Web.config.

La declaración de seguimiento se utiliza para habilitar el seguimiento de la aplicación.

  • Se utiliza el 'requestLimit' en la declaración de seguimiento. Especifica el número de solicitudes de página que se deben rastrear.
  • En nuestro ejemplo, damos un límite de 40. Damos un límite porque un valor más alto degradará el rendimiento de la aplicación.

Ejecute la "aplicación de demostración" en Visual Studio.

Producción:-

Si ahora navega a la URL - http: // localhost: 53003 / trace.axd , verá la información de cada solicitud. Aquí puede ver si se produce algún error en una aplicación. Los siguientes tipos de información se muestran en la página anterior.

  1. La hora de la solicitud de la página web.
  2. El nombre de la página web que se solicita.
  3. El código de estado de la solicitud web. (el código de estado 200 significa que la solicitud se ha realizado correctamente).
  4. Ver detalles que permite ver más detalles sobre la solicitud web. A continuación se muestra un ejemplo de esto. Una información detallada importante proporcionada es la información del encabezado. Esta información muestra cuál es la información enviada en el encabezado de cada solicitud web.

Seguimiento de nivel de página

El seguimiento de la página muestra toda la información general sobre una página web cuando se está procesando. Esto es útil para depurar si una página no funciona por algún motivo.

Visual Studio proporcionará información detallada sobre varios aspectos de la página. Información como la hora de cada método que se llama en la solicitud web. Por ejemplo, si su aplicación web tiene un problema de rendimiento, esta información puede ayudar a depurar el problema. Esta información se muestra cuando la aplicación se ejecuta en Visual Studio.

Veamos cómo habilitar el seguimiento de una aplicación a nivel de página.

Paso 1) Trabajemos en nuestra DemoApplication. Abra el archivo demo.aspx desde el Explorador de soluciones

Paso 2) Agregue la siguiente línea de código para habilitar el seguimiento de la página. En la declaración de la página, simplemente agregue la línea Trace = "true". Esta línea de código permitirá el seguimiento a nivel de página.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %>

Ahora, cuando se muestre la página web Demo.aspx, obtendrá mucha información sobre la página. En esta página se muestra información como el tiempo para cada aspecto del ciclo de vida de la página.

Manejo de errores: visualización de una página de error personalizada

En ASP.Net, puede mostrar páginas de error personalizadas a los usuarios. Si una aplicación contiene algún tipo de error, una página personalizada mostrará este error al usuario.

En nuestro ejemplo, primero agregaremos una página HTML. Esta página mostrará una cadena para el usuario "Estamos investigando el problema". Luego agregaremos algún código de error a nuestra página demo.aspx para que se muestre la página de error.

Sigamos los pasos mencionados a continuación.

Paso 1) Trabajemos en nuestra DemoApplication. Agreguemos una página HTML a la aplicación.

  1. Haga clic con el botón derecho en DemoApplication en el Explorador de soluciones
  2. Elija la opción de menú 'Agregar' -> Página HTML

Paso 2) En el siguiente paso, debemos proporcionar un nombre a la nueva página HTML.

  1. Proporcione el nombre como 'ErrorPage'.
  2. Haga clic en el botón "Aceptar" para continuar.

Paso 3) La página de error se abrirá automáticamente en Visual Studio. Si va al Explorador de soluciones, verá el archivo agregado.

Agregue la línea de código "Estamos investigando el problema" a la página HTML. No es necesario cerrar el archivo HTML antes de realizar el cambio en el archivo web.config.

We are looking into the problem

Paso 4) Ahora debe realizar un cambio en el archivo web.config. Este cambio notificará que siempre que ocurra un error en la aplicación, se debe mostrar la página de error personalizada.

La etiqueta 'customErrors' permite definir una página de error personalizada. La propiedad defaultRedirect se establece en el nombre de nuestra página de error personalizada creada en el paso anterior.

Paso 5) Ahora agreguemos un código defectuoso a la página demo.aspx.cs. Abra esta página haciendo doble clic en el archivo en el Explorador de soluciones.

Agregue el siguiente código al archivo Demo.aspx.cs.

  • Estas líneas de código están diseñadas para leer las líneas de un texto de un archivo.
  • Se supone que el archivo debe estar ubicado en la unidad D con el nombre 'Example.txt'.
  • Pero en nuestra situación, este archivo realmente no existe. Por lo tanto, este código generará un error cuando se ejecute la aplicación.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){String path = @"D:\Example.txt";string[] lines;lines = File.ReadAllLines(path);}}}

Ahora ejecute el código en Visual Studio y debería obtener el siguiente resultado.

Producción:-

La página anterior muestra que se desencadenó un error en la aplicación. Como resultado, se muestra al usuario la página Error.html.

Excepción no controlada de ASP.NET

Incluso en el mejor de los escenarios, puede haber casos de errores que simplemente no se prevén.

Supongamos que un usuario navega a la página incorrecta en la aplicación. Esto es algo que no se puede predecir. En tales casos, ASP.Net puede redirigir al usuario a errorpage.html.

Veamos un ejemplo sobre esto.

  • Vamos a utilizar nuestra misma 'DemoApplication' que tiene el Errorpage.html.
  • E intentaremos ver una página web que no existe en nuestra aplicación.
  • En este caso, deberíamos ser redirigidos a nuestra página ErrorPage.html. Veamos los pasos para lograrlo.

Paso 1) Trabajemos en nuestra DemoApplication. Abra el archivo Global.asax.cs desde el Explorador de soluciones

NOTA : El archivo global.asax.cs se utiliza para agregar código que será aplicable en todas las páginas de la aplicación.

Paso 2) Agregue la siguiente línea de código a global.asax.cs. Estas líneas se utilizarán para comprobar si hay errores y mostrar la página ErrorPage.html en consecuencia.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Application_Error(object sender, EventArgs e){‬ HttpException lastErrorWrapper = Server.GetLastError() as HttpException;if(lastErrorWrapper.GetHttpCode() == 404)Server.T ransfer("~/ErrorPage.html");}}}

Explicación del código: -

  1. La primera línea es el controlador de eventos Application_Error. Este evento se llama siempre que ocurre un error en una aplicación. Tenga en cuenta que el nombre del evento debe ser 'Application_Error'. Y los parámetros deben ser como se muestra arriba.
  2. A continuación, definimos un objeto del tipo de clase HttpException. Este es un objeto estándar que contendrá todos los detalles del error. Luego usamos el método Server.GetLastError para obtener todos los detalles del último error que ocurrió en la aplicación.
  3. Luego verificamos si el código de error del último error es 404. (El código de error 404 es el código estándar que se devuelve cuando un usuario navega a una página que no se encuentra). Luego transferimos al usuario a la página ErrorPage.html si el código de error coincide.

Ahora ejecute el código en Visual Studio y debería obtener el siguiente resultado

Producción:-

Navegue por la página http: // localhost: 53003 / Demo1.aspx . Recuerda que Demo1.aspx no existe en nuestra aplicación. A continuación, obtendrá la siguiente salida.

La página anterior muestra que se desencadenó un error en la aplicación. Como resultado, se muestra al usuario la página Error.html.

Registro de errores de ASP.NET

Al registrar los errores de la aplicación, ayuda al desarrollador a depurar y resolver el error en un momento posterior. ASP.Net tiene la posibilidad de registrar errores. Esto se hace en el archivo Global.asax.cs cuando se captura el error. Durante el proceso de captura, el mensaje de error se puede escribir en un archivo de registro.

Veamos un ejemplo sobre esto.

  • Vamos a utilizar nuestra misma DemoApplication que tiene Errorpage.html.
  • E intentaremos ver una página web que no existe en nuestra aplicación.
  • En este caso, deberíamos ser redirigidos a nuestra página ErrorPage.html.
  • Y al mismo tiempo, escribiremos el mensaje de error en un archivo de registro. Veamos los pasos para lograrlo.

Paso 1) Trabajemos en nuestra DemoApplication. Abra el archivo Global.asax.cs desde el Explorador de soluciones

Paso 2) Agregue la siguiente línea de código a global.asax.cs. Verificará si hay errores y mostrará la página ErrorPage.html en consecuencia. Además, al mismo tiempo, registraremos los detalles del error en un archivo llamado 'AllErrors.txt'. Para nuestro ejemplo, escribiremos código para crear este archivo en la unidad D.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Application_Error(object sender, EventArgs e){Exception exc = Server.GetLastError();String str ;str = exc.Message;String path = @"D:\AllErrors.txt";File.WriteAllTest(path,str);Server.trrasfer("~/ErrorPage.html");}}}

Explicación del código: -

  1. La primera línea es obtener el error en sí mediante el método 'Server.GetLastError'. A continuación, se asigna a la variable 'exc'.
  2. Luego creamos una variable de cadena vacía llamada 'str'. Obtenemos el mensaje de error real usando la propiedad 'exc.Message'. La propiedad exc.Message tendrá el mensaje exacto de cualquier error que ocurra al ejecutar la aplicación. A continuación, se asigna a la variable de cadena.
  3. A continuación, definimos el archivo llamado 'AllErrrors.txt'. Aquí es donde se enviarán todos los mensajes de error. Escribimos la cadena 'str' que contiene todos los mensajes de error en este archivo.
  4. Finalmente, transferimos al usuario al archivo ErrorPage.html.

Producción:-

Navegue por la página http: // localhost: 53003 / Demo1.aspx . Recuerda que Demo1.aspx no existe en nuestra aplicación. A continuación, obtendrá la siguiente salida.

Y al mismo tiempo, si abre el archivo 'AllErrors.txt', verá la siguiente información.

El mensaje de error se puede transmitir al desarrollador en un momento posterior para fines de depuración.

Resumen

  • ASP.Net tiene la capacidad de realizar depuración y manejo de errores.
  • La depuración se puede lograr agregando puntos de interrupción al código. Luego, se ejecuta la opción Iniciar con depuración en Visual Studio para depurar el código.
  • El rastreo es la posibilidad de proporcionar más información mientras se ejecuta la aplicación. Esto se puede hacer a nivel de la aplicación o de la página.
  • A nivel de página, el código Trace = true debe agregarse a la directiva de página.
  • En el nivel de la aplicación, se crea una página adicional llamada Trace.axd para la aplicación. Esto proporciona toda la información de rastreo necesaria.

Articulos interesantes...