Un processus desservant le pool d'applications 'Classic .NET AppPool' a rencontré une erreur de communication fatale avec le service d'activation de processus Windows

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

Question

J'exécute une application Web ASP.NET 3.5 sur IIS 7 sous Windows Server 2008.

J'ai reçu l'erreur suivante plus tôt cet après-midi:

Erreur HTTP 503. Le service n'est pas disponible.

J'ai consulté les journaux des événements et découvert que:

Un processus desservant le pool d'applications 'Classic .NET AppPool' a rencontré une erreur de communication fatale avec le service d'activation de processus Windows. L'identifiant du processus était '3328'. Le champ de données contient le numéro d'erreur.

Voici les détails complets de cet événement:

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>

Cela s'est traduit par:

Le pool d'applications 'Classic .NET AppPool' est automatiquement désactivé en raison d'une série d'échecs dans les processus desservant ce pool d'applications.

Voici les détails complets de cet événement:

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>

Conclusion dans: l'erreur HTTP 503. Le service n'est pas disponible.

Est-ce que quelqu'un pourrait m'aider à identifier comment cela s'est passé et ce que je dois faire pour éviter que cela ne se produise à l'avenir.

Était-ce utile?

La solution

Celui-ci est assez méchant. Je recommande d'utiliser les outils Diagnostics de débogage IIS . Vous pouvez probablement atténuer les symptômes en désactivant la "Protection rapide en cas d'échec". dans les propriétés de votre pool d’applications, mais cela ne fera que masquer le problème. Ce qui se passe, c’est que votre application rencontre une exception si souvent / si souvent que le service s’éteint tout seul. Vous devrez exécuter l'outil de diagnostic pour capturer tout ce qui entre et qui sort pour trouver l'exception qui se produit.

Cela peut être une tâche très laborieuse, car l'outil va collecter des gigaoctets de bric-à-brac afin de les filtrer. Si vous êtes chanceux, désactivez l'option "Protection rapide en cas d'échec". permettre à l’exception de passer par le navigateur, mais j’imagine que le serveur finira par être suspendu.

Autres conseils

Si vous utilisez NServiceBus, assurez-vous que le compte sous lequel le pool d'applications est en cours d'exécution est autorisé à lire la file de messages.

NServiceBus exécute une tâche d’arrière-plan au démarrage de l’application qui expire au bout de 10 secondes, ce qui entraîne la suppression du processus w3wp s’il ne parvient pas à lire dans la file d’attente. Après n (5 par défaut), w3wp se bloque et la protection Rapid-Fail se déclenche et arrête le pool d'applications.

http://blog.jonathanoliver.com/ 2010/11 / nservicebus-w3wp-processus-exe-crash -

Cela est probablement dû à une boucle infinie.

(Je viens d'avoir le même problème.) Il vous suffira donc de rechercher des endroits dans le code qui utilisent des boucles et de voir si la suppression de l'un d'eux arrête l'erreur. Une fois que vous avez trouvé le coupable, vous pouvez alors essayer de comprendre ce qui le cause en boucle pour une durée indéterminée.

Je viens de localiser et de résoudre le même problème. Quelques choses qui pourraient causer le problème:

  • Une boucle Server.Transfer ()
  • Appel de CurrentThread.Abort () dans certains scénarios .. (comme après un Server.Transfer ()!)

Réparer ces choses, c’est ce qui nous a permis de les réparer.

J'ai eu ce problème, l'observateur d'événements avait "Le chargement de la DLL de module C: \ Windows \ system32 \ RpcProxy \ RpcProxy.dll. Les données sont l’erreur. & Quot; Ce post avait les étapes pour corriger ceci: http://forums.iis.net/t/1154189.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top