Obtención de volcados de fallos del proceso de trabajo de IIS
-
09-06-2019 - |
Pregunta
Estoy haciendo algo malo en mi aplicación ASP.NET.Podría ser cualquier cantidad de bibliotecas CTP que estoy usando o simplemente no estoy desechando algo correctamente.Pero cuando vuelvo a implementar mi ASP.NET en mi instalación de Vista IIS7 o en la instalación de IIS6 de mi servidor, bloqueo un proceso de trabajo de IIS.
Reduje el problema a mi rastreador HTTP, que es una bestia multiproceso que rastrea sitios en busca de información útil cuando se le solicita.Después de iniciar un rastreador y volver a implementar la aplicación en la parte superior, en lugar de descargar correctamente el dominio de la aplicación y volver a cargarlo, un proceso de trabajo de IIS fallará (aparecerá un mensaje de falla) y continuará recargando el dominio de la aplicación.
Cuando ocurre este bloqueo, ¿dónde puedo encontrar el volcado de memoria para analizarlo?
Solución
Descargue herramientas de depuración para Windows:http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx
Las herramientas de depuración para Windows tienen un script (ADPLUS) que le permite crear volcados cuando un proceso falla:http://support.microsoft.com/kb/286350
El comando debería ser algo como (si estás usando IIS6):
cscript adplus.vbs -crash -pn w3wp.exe
Este comando adjuntará el depurador al proceso de trabajo.Cuando se produzca el fallo, se generará un volcado (un archivo *.DMP).
Puede abrirlo en WinDBG (también incluido en las Herramientas de depuración para Windows).Archivo > Abrir volcado de memoria...
De forma predeterminada, WinDBG le mostrará (junto a la línea de comando) el hilo donde el proceso falló.
Lo primero que debes hacer en WinDBG es cargar las extensiones de .NET Framework:
.loadby sos mscorwks
luego, mostrará la pila de llamadas administrada:
!clrstack
Si el hilo no estaba ejecutando código administrado, deberá verificar la pila nativa:
kpn 200
Esto debería darte algunas ideas.Para continuar solucionando problemas te recomiendo leer el siguiente artículo:
Otros consejos
Una búsqueda rápida encontrada Estado IISS - se basa en el Herramientas de depuración de Windows y debe estar ejecutándose cuando ocurre un bloqueo, pero dadas las circunstancias que ha descrito, esto no debería ser un problema,
También puedes usar DebugDiag para esto.
Puede encontrar una gran explicación aquí:
http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag.aspx