asp.net - stops - iis windows 7 http error 503 the service is unavailable
Un proceso que sirve al grupo de aplicaciones ''Classic.NET AppPool'' sufrió un error de comunicación fatal con el Servicio de Activación de Proceso de Windows (5)
Acabo de rastrear y solucioné el mismo problema desagradable. Un par de cosas que podrían causar el problema:
- Un bucle Server.Transfer ()
- Llamando a CurrentThread.Abort () en ciertos escenarios .. (Como después de un Server.Transfer ()!)
Reparar esas cosas es lo que nos solucionó.
Estoy ejecutando una aplicación web ASP.NET 3.5 en IIS 7 en Windows Server 2008.
He recibido el siguiente error esta tarde:
HTTP Error 503. The service is unavailable.
Busqué en los registros de eventos y descubrí que:
A process serving application pool ''Classic .NET AppPool'' suffered a fatal communication error with the Windows Process Activation Service. The process id was ''3328''. The data field contains the error number.
Aquí están los detalles completos de ese evento:
Log Name: System
Source: Microsoft-Windows-WAS
Date: 18/09/2009 14:58:31
Event ID: 5011
Task Category: None
Level: Warning
Keywords: Classic
User: N/A
Computer: computername
Description:
A process serving application pool ''Classic .NET AppPool'' suffered a fatal communication error with the Windows Process Activation Service. The process id was ''3328''. The data field contains the error number.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-WAS" Guid="{5 .. 0}" EventSourceName="WAS" />
<EventID Qualifiers="32768">5011</EventID>
<Version>0</Version>
<Level>3</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2009-09-18T13:58:31.000Z" />
<EventRecordID>23552</EventRecordID>
<Correlation />
<Execution ProcessID="0" ThreadID="0" />
<Channel>System</Channel>
<Computer>computername</Computer>
<Security />
</System>
<EventData>
<Data Name="AppPoolID">Classic .NET AppPool</Data>
<Data Name="ProcessID">3328</Data>
<Binary>6D000780</Binary>
</EventData>
</Event>
Esto resultó en:
Application pool ''Classic .NET AppPool'' is being automatically disabled due to a series of failures in the process(es) serving that application pool.
Aquí están los detalles completos de ese evento:
Log Name: System
Source: Microsoft-Windows-WAS
Date: 18/09/2009 15:03:05
Event ID: 5002
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: computername
Description:
Application pool ''Classic .NET AppPool'' is being automatically disabled due to a series of failures in the process(es) serving that application pool.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-WAS" Guid="{5 .. 0}" EventSourceName="WAS" />
<EventID Qualifiers="49152">5002</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2009-09-18T14:03:05.000Z" />
<EventRecordID>23557</EventRecordID>
<Correlation />
<Execution ProcessID="0" ThreadID="0" />
<Channel>System</Channel>
<Computer>computername</Computer>
<Security />
</System>
<EventData>
<Data Name="AppPoolID">Classic .NET AppPool</Data>
<Binary>
</Binary>
</EventData>
</Event>
Concluyendo en: HTTP Error 503. El servicio no está disponible.
¿Alguien podría ayudarme a identificar cómo sucedió esto y qué debo hacer para evitar que ocurra en el futuro?
Es más probable que sea causado por un bucle infinito.
(Acabo de tener el mismo problema.) Así que solo tendrá que buscar lugares en el código que usen bucles y ver si eliminar uno de ellos detiene el error. Una vez que haya encontrado al culpable, entonces puede tratar de averiguar qué está causando que se repita indefinidamente.
Esta es una muy desagradable. Recomiendo obtener las herramientas IIS Debug Diagnostics . Probablemente pueda aliviar el síntoma desactivando "Rapid Fail Protection" en las propiedades de su grupo de aplicaciones, pero eso simplemente enmascarará el problema. Lo que sucede es que su aplicación está experimentando una excepción tantas veces repetida que el servicio se apaga solo. Tendrá que ejecutar la herramienta de diagnóstico para capturar todo lo que entra y sale para encontrar la excepción que está ocurriendo.
Esta puede ser una tarea muy laboriosa porque la herramienta reunirá gigabytes de basura para filtrar. Si tiene suerte, la desactivación de la "Protección contra fallas rápidas" podría permitir que la excepción pase al navegador, pero supongo que el servidor terminará colgando.
Si está utilizando NServiceBus, asegúrese de que la cuenta en la que se ejecuta el grupo de aplicaciones tenga permisos para leer de la cola de mensajes.
NServiceBus ejecuta una tarea en segundo plano en el inicio de la aplicación que demora 10 segundos, lo que hace que el proceso w3wp se elimine si no puede leer desde la cola. Después de que n (predeterminado de 5) w3wp se bloquea, la protección contra fallas rápidas entra en acción y detiene el grupo de aplicaciones.
http://blog.jonathanoliver.com/2010/11/nservicebus-w3wp-exe-processes-crashing/
Tuve este problema, el visor de eventos tenía "El Módulo DLL C: / Windows / system32 / RpcProxy / RpcProxy.dll no se pudo cargar. Los datos son el error". Esta publicación tenía los pasos para corregir esto: http://forums.iis.net/t/1154189.aspx