Nuestro sitio web está en .NET pero también contiene algunas antiguas bibliotecas ASP y 32bits. Había estado funcionando bien por un tiempo (2 años). Pero durante el último mes, hemos visto el siguiente error en nuestro servidor IIS7, que no hemos podido rastrear y corregir:IIS7: aplicación de error w3wp.exe, ¿cuál es la causa raíz de estos bloqueos?
"Aplicación de error w3wp.exe, versión 7.0.6001.18000, marca de tiempo 0x47919413, módulo de fallas kernel32.dll, versión 6.0.6001.18215, marca de tiempo 0x4995344f, código de excepción 0xe053534f, error de desplazamiento 0x0002f328, id de proceso 0x% 9, tiempo de inicio de la aplicación 0x% 10. "
que son capaces de reproducir el error:
Una de nuestras páginas .aspx que empiece a cargarse, el código y ejecutar consultas (tenemos Response.Flush() por toda la página a la pista en la que se rompe el código), luego se detiene de repente y obtenemos el error anterior en IIS.
La página se detiene la carga y, sin la Response.Flush(), no es volver a dirigir a nuestra página error.aspx (como se configura en web.config)
el error no sucede todo el tiempo. A veces, ocurre 3 veces seguidas, luego funciona bien durante 15 minutos sin parar con una redirección adecuada a error.aspx.
El error que obtenemos entonces es un clásico: "O bien BOF o EOF es verdadero o el registro actual se ha eliminado".
Cuando se produce el error, la página se cuelga y todas las demás sesiones en la misma computadora desde cualquier navegador tienen páginas web colgadas (por cierto, solo permitimos 1 proceso de trabajo mientras estamos probando). Desde otras computadoras, el sitio carga bien.
Puedo reciclar el grupo de aplicaciones, matar w3wp.exe, reiniciar IIS. Nada servirá. La única forma de volver a cargar correctamente la página es reiniciar MS SQL que maneja nuestros estados de sesión. No sé por qué ocurre esto, pero supusimos que las cookies de sesión en los navegadores de los usuarios apuntan a un hilo que no finalizó correctamente (debido al bloqueo anterior) e IIS está esperando que termine para procesar más código (?) Si alguien puede explicar esto mejor, sería realmente útil. ¿Hay un tiempo de espera que podemos configurar para "terminar" los hilos? ¿Es un problema relacionado con MS SQL?
También he mirado a los usos de memoria privadas y virtuales, porque creo que nuestro código no es el más eficaz y estoy seguro de que hemos pérdidas de memoria restante. Sin embargo, vi que la página se bloqueaba a pesar de que tanto las memorias privadas como las virtuales todavía eran bastante bajas (menos de 100 MB cada una).
He usado Debug Diag y WinDbg como se indica aquí: http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag.aspx, pero no podemos hacer que funcione windbg, esto es lo que estamos tratando de hacer en este momento.
Si alguien nos puede ayudar o apuntar hacia la dirección correcta, sería realmente genial, gracias.
será mejor que decir claramente qué tema WinDBG se conocieron. –