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?

¿Fue útil?

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:

http://msdn.microsoft.com/en-us/library/ee817663.aspx

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top