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 procesos de Windows

StackOverflow https://stackoverflow.com/questions/1445566

Pregunta

Estoy ejecutando una aplicación web ASP.NET 3.5 en IIS 7 en Windows Server 2008.

Recibí el siguiente error a principios de esta tarde:

Error HTTP 503. El servicio no está disponible.

Miré en los registros de eventos y descubrí que:

Un proceso que sirve al grupo de aplicaciones 'Classic .NET AppPool' sufrió un error fatal de comunicación con el Servicio de Activación de Procesos de Windows. La identificación del proceso era '3328'. El campo de datos contiene el número de error.

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:

El grupo de aplicaciones 'Classic .NET AppPool' se está deshabilitando automáticamente debido a una serie de fallas en los procesos que sirven a ese grupo de aplicaciones.

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: Error HTTP 503. El servicio no está disponible.

¿Podría alguien ayudarme a identificar cómo sucedió esto y qué debo hacer para evitar que ocurra en el futuro?

¿Fue útil?

Solución

Este es bastante desagradable. Recomiendo obtener las herramientas IIS Debug Diagnostics . Probablemente pueda aliviar el síntoma desactivando "Protección rápida contra fallas". en las propiedades de su grupo de aplicaciones, pero eso solo enmascarará el problema. Lo que está sucediendo es que su aplicación está experimentando una excepción tan a menudo / tan repetidamente que el servicio se apaga solo. Deberá 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 filtrarla. Si tiene suerte, la desactivación de la "Protección rápida contra fallas" puede permitir que la excepción pase al navegador, pero supongo que el servidor terminará colgando.

Otros consejos

Si está utilizando NServiceBus, asegúrese de que cualquier cuenta con la que se ejecute el grupo de aplicaciones tenga permisos para leer fuera de la cola de mensajes.

NServiceBus ejecuta una tarea en segundo plano en el inicio de la aplicación que agota el tiempo de espera después de 10 segundos, provocando que el proceso w3wp se cierre si no puede leer desde la cola. Después de n (predeterminado de 5), w3wp se bloquea Rapid-Fail Protection se activa y detiene el grupo de aplicaciones.

http://blog.jonathanoliver.com/ 2010/11 / nservicebus-w3wp-exe-projects-crashing /

Es muy probable que sea causado por un bucle infinito.

(Acabo de tener el mismo problema). Por lo tanto, 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, puede intentar averiguar qué está causando que se repita indefinidamente.

Simplemente rastreé 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 ()!)

Arreglar esas cosas es lo que nos solucionó.

Tuve este problema, el visor de eventos tenía " El Módulo DLL C: \ Windows \ system32 \ RpcProxy \ RpcProxy.dll no pudo cargarse. Los datos son el error. & Quot; Esta publicación tenía los pasos para corregir esto: http://forums.iis.net/t/1154189.aspx

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