Um pool de aplicativos servindo processo 'Classic .NET AppPool' sofreu um erro fatal de comunicação com o Processo Windows Service Activation

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

Pergunta

Estou executando uma aplicação web ASP.NET 3.5 no IIS 7 no Windows Server 2008.

Recebi o seguinte erro no início desta tarde:

HTTP Error 503. The service is unavailable.

Eu olhei nos logs de eventos e descobriu 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.

Aqui está os detalhes desse 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>

Isto resultou em:

Application pool 'Classic .NET AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.

Aqui está os detalhes desse 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>

Concluindo no:. Erro HTTP 503. O serviço está indisponível

Alguém ajuda por favor me identificar como isso aconteceu eo que eu preciso fazer para impedir que isso aconteça no futuro.

Foi útil?

Solução

Este é um muito desagradável. Eu recomendo ter os IIS Debug Diagnostics ferramentas. Você provavelmente pode aliviar o sintoma desligando "Rápido falha de proteção" nas propriedades de seu pool de aplicativos, mas que só irá mascarar o problema. O que está acontecendo é que a sua aplicação está experimentando uma exceção tantas vezes / tão repetidamente que o próprio fecha serviços off. Você precisa executar a ferramenta de diagnóstico para capturar tudo que entra e sai para encontrar a ressalva de que está ocorrendo.

Isto pode ser uma tarefa muito trabalhosa porque a ferramenta vai reunir gigabytes de lixo para peneirar. Se você tiver sorte, o desligar da "Proteção Falha rápida" pode permitir que a exceção para prosseguir através do navegador, mas meu palpite é que o servidor só vai acabar pendurado.

Outras dicas

Se você estiver usando NServiceBus certificar-se de qualquer conta do pool de aplicativos está sendo executado sob tem permissões para ler off da fila de mensagens.

NServiceBus executa uma tarefa de fundo na inicialização do aplicativo que timesout após 10 segundos, fazendo com que o processo w3wp para ser morto se não pode ler da fila. Após n (padrão 5) w3wp falha pontapés proteção rápida contra falhas no e pára o pool de aplicativos.

http://blog.jonathanoliver.com/ 2010/11 / NServiceBus-w3wp-exe-processos-crashing /

Sua provavelmente causado por um loop infinito.

(eu só tinha o mesmo problema.) Então você só vai ter que olhar para os lugares no código que usar loops e ver se remover um deles pára o erro. Depois de ter encontrado o culpado, então você pode tentar descobrir o que está causando isso para repetir indefinidamente.

Eu só rastreou e fixa o mesmo problema desagradável. Algumas coisas que podem causar o problema:

  • Um Server.Transfer () laço
  • Chamando CurrentThread.Abort () em determinados cenários .. (Como depois de um Server.Transfer ()!)

A fixação dessas coisas é o que fixa-lo para nós.

Eu tive esse problema, o visualizador de eventos teve "O módulo DLL C:.. \ Windows \ system32 \ RpcProxy \ rpcproxy.dll não conseguiu carregar os dados é o erro" Este post tinha as medidas para corrigir isso: http://forums.iis.net/t/1154189.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top