Documente Academic
Documente Profesional
Documente Cultură
NET y WebServices
Por Mauro SantAnna (santanna@mas.com.br). Mauro es Director regional de MSDN, consultor e instructor de MAS Informtica (www.mas.com.br) y lleva organizando programas de formacin de la arquitectura .NET desde octubre de 2000. En el artculo anterior se explicaba cmo depurar un programa de ASP.NET o un servicio Web con Microsoft Visual Studio .NET. En el caso de la depuracin, nos interesa ejecutar el programa bajo un control estricto y examinar minuciosamente su funcionamiento interno. En el modo de rastreo, no estamos tan interesados en conocer detalladamente el proceso, sino en ejecutar el programa sin impedimentos y obtener informacin de mayor nivel acerca de lo que est ocurriendo. La librera de ASP.NET puede generar automticamente bastante informacin de rastreo. Para activar el modo de rastreo no es necesario modificar el programa, ni tener acceso a su cdigo fuente. Slo tenemos que cambiar una de las lneas del archivo web.config. Usar el ejemplo creado anteriormente en el artculo dedicado a la depuracin, pero Ud. puede experimentar con cualquier programa de Web creado con Visual Studio .NET.
La modificacin puede realizarse desde Visual Studio o desde cualquier otro editor de texto. Para activar el rastreo ni siquiera es necesario recompilar el programa. Basta con guardar el archivo web.config. La aplicacin se reiniciar automticamente con el modo de rastreo en la prxima peticin realizada desde alguna pgina de la aplicacin.
La pgina anterior contiene una lista con los cuatro ltimos rastreos, con un mximo de diez. La cantidad mxima de pginas puede ser modificada con el parmetro requestLimit del archivo web.config. Vamos a seleccionar uno de los vnculos View Details (Ver detalles):
La utilizacin de esta pgina mezclada tiene ventajas y desventajas: Por un lado, no necesitamos llamar a una pgina concreta, pero por otro lado el resultado queda algo confuso. Esto queda al criterio de cada usuario.
muchos controles, lo que puede hacer que la aplicacin sea ms lenta, cul de ellos est generando ms salida y cules consumen ms espacio de __VIEWSTATE, ya que todo el contenido de este campo se enva de nuevo al examinador y puede afectar al rendimiento. En Cookie Collection (Coleccin de cookies) aparecen los cookies utilizados por la aplicacin. Para identificar la sesin, suele utilizarse un cookie que tiene el mismo nombre que el que aparece en Session ID (ID de sesin), si bien su programa puede tambin crear y utilizar otros cookies directamente, o incluso usar sesiones sin cookies. En Header Collection (Coleccin de cabeceras) aparecen exactamente las cabeceras enviadas por el examinador de Web, segn el protocolo HTTP. Ud. puede usar esta entrada para descubrir detalles del pedido, como por ejemplo la versin, el modelo y el fabricante del examinador que hizo la peticin. En Form Collection (Coleccin de formularios) o Query String Collection (Coleccin de cadenas de consulta) se muestran los pares nombre-valor enviados por el navegador, que suelen corresponder a los campos de la pgina. En Server Variables (Variables del servidor) se muestran las distintas variables enviadas a su programa por el servidor de Web, segn el protocolo CGI.
Aqu se muestra cmo el rastreo revela un error de programacin. Sabra identificar dnde se encuentra?
Otros ajustes
Las otras entradas de la etiqueta de Trace de XML tienen el significado siguiente: requestLimit: un nmero entero que indica cunta informacin de rastreo debe almacenarse en la memoria, en nmero de pginas. El valor predeterminado es 10. traceMode: indica cmo debe clasificarse el resultado del grupo Trace Information (Informacin de rastreo). Las opciones son SortByTime, para clasificar cronolgicamente, y SortByCategory, para clasificar por categoras (la categora es la primera cadena del mtodo Context.Trace.Write); localOnly: indica si la informacin de rastreo puede verse slo en el servidor (true) o en cualquier computadora (false). Para mayor seguridad, inicialmente slo puede ser vista en el servidor.
WebServices
Esta misma informacin est disponible para los servicios de Web y se activa del mismo modo. Veamos un ejemplo de rastreo para un servicio de Web sencillo que suma dos nmeros, probado desde el examinador con el mtodo GET:
El mismo servicio de Web probado desde una aplicacin desarrollada con Visual Studio .NET utiliza el mtodo SOAP y presenta una informacin ligeramente distinta. Por ejemplo, observe la cabecera SOAPAction en Headers Collection (Coleccin de cabeceras) y el User-Agent (Agente de usuario) que identifica al cliente .NET CLR versin 1.0.3328.4:
Conclusin
El rastreo permite obtener fcilmente distintos tipos de informacin de ejecucin de las aplicaciones de ASP.NET, lo que le permite conocer mejor lo que ocurre con la aplicacin, corregir errores y mejorar el rendimiento.