¿Cuál es la forma más rápida de inyectar algunos registros en una aplicación web en vivo?
-
13-09-2019 - |
Pregunta
Tengo una aplicación web en vivo que está fallando en un escenario específico, y localmente funciona bien. No tengo configuración de depuración remota, y quiero verificar el valor de algunas de las variables en el código. ¿Cuál sería la forma más rápida de iniciar sesión/correo electrónico/depurar el código para ver esos valores?
Solo para ser claro, no se lanza un error/excepción. Algo es diferente, y está causando que la aplicación dé resultados inesperados.
¡Gracias por adelantado!
Solución
los lo más rápido La forma es simplemente implementar algunos registros en el evento Application_Error dentro de su archivo global.asax. Si no tiene un archivo global.asax, simplemente cree uno con el asistente de archivos VS y manejará ese evento para usted.
No le ayudará a llegar a las variables locales en el alcance del error, pero puede registrar variables globales desde allí y al menos recibir comentarios sobre cuál es el error.
EDITAR: En respuesta a su comentario, le recomiendo que emita sus datos de rastreo a un archivo que puede analizar. No lo he probado yo mismo, pero lo he visto recomendado. A su web.config, agregue algo llamado Tracelistener al igual que:
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="TestTracer"
type="System.Diagnostics.TextWriterTraceListener, System,
Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
initializeData="<app root directory>\Asptesttrace.log" />
</listeners>
</trace>
</system.diagnostics>
Vas a necesitar jugar con él localmente, estoy seguro. Por ejemplo, asegúrese de que la traza no sea visible para el cliente (esto puede implicar usar la clase de rastreo para activar o desactivar la traza y cambiar las transmisiones a las que escribe).
Otros consejos
Además del comentario de Joshjordan, es posible que pueda usar Publicación aguda Para rastrear cada vez que se ingresa y no sale un método, y vea qué valores están entrando ...
Siempre puede activar la depuración local y luego remota en el servidor y usar la aplicación.
Podría ser la forma más rápida de ver su problema.
Intentaría con ASP.NET TRACE (http://www.4guysfromrolla.com/webtech/081501-1.shtml) para registro rápido. Tendrá que agregar llamadas Trace.Write () en su código y puede ver el inicio de sesión en la página en vivo (solo navegando).
Para un registro más rico, puede usar log4net (solo Google "usando log4net" y obtendrá un montón de enlaces útiles), que es fácilmente configurable y le permite enviar registros por correo electrónico (¡lo cual es increíblemente útil!).
Espero que ayude.