Por varias razones comunes, quería utilizar el rastreo para mi aplicación ASP.NET. Especialmente desde que descubrí la posibilidad de usar la herramienta Service Trace Viewer que le permite examinar sus rastros de una manera poderosa.rastreo de ASP.NET y System.Diagnostics: ¿me he perdido algo o es una mala idea?
Como nunca antes había usado esta traza, comencé a estudiarla. Después de un tiempo de Google, SO y MSDN finalmente tengo una buena idea de cómo funcionan las cosas. Pero también encontré una cosa muy distrubing.
Al usar trazas en aplicaciones ASP.NET, tiene mucho sentido agrupar los mensajes de seguimiento mediante solicitudes web. Especialmente porque una de las razones por las que quiero usarlo es para estudiar problemas de rendimiento. La herramienta mencionada anteriormente también es compatible con el uso de etiquetas <Corrleation>
en los archivos XML generados. Que a su vez provienen de System.Diagnostics.Trace.CorrelationManager
. También permite otras características agradables como el inicio/la detención de la actividad, que proporciona una agrupación aún mejor de mensajes de seguimiento. Genial, ¿verdad?
Yo también lo pensé, hasta que comencé a inspeccionar dónde vivía realmente el CorrelationManager
. Después de todo, era una propiedad estática. Después de jugar con Reflector descubrí algo horrible: ¡está almacenado en CallContext
! ¿Cuál es el tipo de cosa we shouldn't be using in ASP.NET, derecho?
Entonces ... ¿me falta algo aquí? ¿El rastreo es realmente defectuoso en ASP.NET?
Agregado: Emm, estoy a punto de volver a escribir esto yo mismo. Todavía quiero usar la herramienta clara para explorar los rastros. ¿Alguna razón por la que no debería hacer esto? Quizás hay algo mejor todavía? Sería realmente bueno si recibiera algunas respuestas pronto. :)
Agregado 2: Un colega mío confirmó que esto no es solo un problema teórico. Él ha observado esto en el sistema en el que está trabajando. Entonces está arreglado. Voy a construir un nuevo sistema pequeño que haga las cosas como yo quiero. :)
Agregado 3: Guau, genial ... los chicos de Microsoft no pudieron encontrar nada malo con el uso del Administrador de correlación en ASP.NET. Entonces aparentemente no estamos obteniendo una solución para este error después de todo ...
Agradable. No he encontrado ese artículo todavía. En realidad, es bastante imposible buscar algo sobre el tema tampoco. Es extraño que más personas no hayan entendido esto. –
El enlace al "sitio de este tipo" ha cambiado: http://sticklebackplastic.com/post/2007/08/14/Omighty-gotcha-for-SystemDiagnostic-activity-Ids.aspx –
el enlace se ha actualizado, gracias chris – regex