asp.net iis crash-reports w3wp

asp.net - Cómo depurar el error w3wp clr.dll



iis crash-reports (4)

Alguna adición a la respuesta anterior. Desarrollar la extensión Explorer que recibió un error al iniciar sesión el usuario. Entonces, para el usuario, se ve una "pantalla parpadeante" (mientras que el explorador intenta iniciar y bloquearse, luego reiniciar, etc.). Iniciado con otra cuenta de usuario instalada DebugDiag y WinDbg. Estoy usando Windows 8.1 con .Net 4.0 con todas las actualizaciones más recientes hoy (13 de enero de 2014) He intentado descargar algunos símbolos localmente, pero WinDbg no puede cargar clr.pdb debido a una señalización incorrecta.

Resuelto usando símbolos en línea: use "SRV * http://msdl.microsoft.com/download/symbols " como ruta de símbolos.

Mi cliente tiene una aplicación ASP.NET instalada en dos servidores de producción (balanceada con NLB, pero eso es irrelevante). Ambos servidores se bloquean cada 3-4 horas con el siguiente error de registro del visor de eventos:

Nombre de la aplicación que falla: w3wp.exe, versión: 7.5.7601.17514, marca de tiempo: 0x4ce7afa2
Nombre del módulo con error: clr.dll, versión: 4.0.30319.18034, indicación de fecha y hora: 0x50b5a783
Código de excepción: 0xc00000fd Desplazamiento de falla: 0x000000000001a840
ID del proceso de fallas: 0xd50
Tiempo de inicio de la aplicación de error: 0x01ce97fe076d27b4
Ruta de la aplicación con errores: c: / windows / system32 / inetsrv / w3wp.exe
Ruta del módulo con errores: C: / Windows / Microsoft.NET / Framework64 / v4.0.30319 / clr.dll Id. Del informe: e0c90a5f-0455-11e3-8f0e-005056891553

No tengo idea de cómo depurar o dónde comenzar. Cuando el colapso está a punto de ocurrir, el uso del procesador del servidor salta al 100% y permanece allí. El proceso en falla es w3wp.exe. Ni siquiera estoy seguro de si mi código está generando el error o no. Es IIS 7.5. Cualquier puntero sería muy apreciado.


Otra causa podría ser "función recursiva infinita". Cuando se ocupa del bucle infitine Windows, intente el punto muerto de la prevención y desactive el grupo de aplicaciones repetidas.

Me encontré con el mismo problema hoy. Tengo una función recursiva que enumera el proyecto parentproject-sub. Un proyecto se establece como proyecto principal y, cuando es una función recusiva, prueba todos los proyectos padre-sub, infinito bucle occures.


Parece que tiene una Excepción de , que es causada por una recursión ilimitada (una función que se llama a sí misma repetidamente, etc.). Esto no puede ser atrapado por el bloque try / catch regular. Puede rastrear el problema utilizando DebugDiag y WinDbg .

DebugDiag se puede configurar para generar un volcado de bloqueo cuando se produce Exception. Descargue en https://www.microsoft.com/en-us/download/details.aspx?id=49924 .

  1. Abra DebugDiag y haga clic en Agregar regla.
  2. "Crash" ya debería estar seleccionado. Haga clic en Siguiente.
  3. Elija "Un grupo de aplicaciones web de IIS específico" y haga clic en Siguiente.
  4. Seleccione el grupo de aplicaciones y haga clic en Siguiente.
  5. Debería estar en la ventana de configuración avanzada. Haga clic en Excepciones en Configuración avanzada.
  6. Haga clic en Agregar excepción y elija Desbordamiento de pila, con un Tipo de acción de Userdump completo.
  7. Haga clic en Aceptar y guarde y cierre.

La próxima vez que se produzca una Exception, tendrá un volcado de emergencia. Ahora necesita interpretar el archivo de volcado.

Las herramientas de depuración para Windows forman parte del SDK de Windows y se pueden descargar en http://msdn.microsoft.com/en-US/windows/hardware/gg463009/ .

  1. Para usar WinDbg, necesitarás obtener los archivos de símbolos. Descargue los archivos de símbolos y colóquelos en una carpeta local.
  2. Abre WinDbg. En el menú Archivo, haga clic en Ruta del archivo de símbolo.
  3. En el cuadro SRV*your local folder for symbols*http://msdl.microsoft.com/download/symbols del símbolo, la documentación dice que escriba el siguiente comando: SRV*your local folder for symbols*http://msdl.microsoft.com/download/symbols , sin embargo, acabo de poner en la carpeta local los símbolos y funcionó bien
  4. Salga, abra WinDbg nuevamente y abra Crash Dump y busque el archivo de volcado creado por DebugDiag.
  5. En la línea de comando, escribe .loadby sos clr
  6. ¡Ahora escribe !CLRStack

En los resultados, debe quedar claro cuál es el problema (es probable que vea un manojo de líneas que muestren la (s) función (es) a las que se llamó repetidamente).


Pude comprobar el Visor de eventos -> Registros de Windows -> Sistema y encontrar

El grupo de aplicaciones ''DankAppPool'' se desactiva automáticamente debido a una serie de fallas en los procesos que sirven a ese grupo de aplicaciones.

Debajo de eso:

Un proceso que sirve al grupo de aplicaciones ''DankAppPool'' sufrió un error de comunicación fatal con el Servicio de Activación de Proceso de Windows. La identificación del proceso era ''5704''. El campo de datos contiene un error numérico.

Y:

El servicio QueueMonitor finalizó inesperadamente. Lo ha hecho 32 veces. La siguiente acción correctiva se tomará en 60000 milisegundos: reinicie el servicio.

Al menos el servicio QueueMonitor es un lugar para comenzar.