Processo de trabalho do ASP.NET travando regularmente

1

Temos um aplicativo da Web hospedado no IIS6 em execução no Windows Server 2003 com o ASP.NET versão 2.0.50727. O aplicativo foi executado bem até a semana passada. Desde essa semana, temos recebido o erro abaixo em intervalos regulares, causando a reciclagem do processo de trabalho.

Falha no aplicativo w3wp.exe, versão 6.0.3790.3959, módulo com falhas ntdll.dll, versão 5.2.3790.3959, endereço de falha 0x0001a3e1.

Nós tentamos reinstalar o .NET framework, assim como o IIS6, sem sorte. O mesmo aplicativo da Web está funcionando bem em uma máquina Windows Server 2003 diferente.

Nosso sistema operacional é o Windows Server 2003 SP2. Nenhuma atualização foi feita nas últimas 1-2 semanas. O surpreendente é que tudo estava bem desde a última quinta-feira e as coisas pioraram esta semana.

    
por sysadmin1138 30.12.2009 / 12:55

2 respostas

2

Desconfortavelmente, as mensagens de erro do IIS não são muito descritivas. Sugiro instalar algo como Debug do IIS que executará e monitorará o IIS e registrará informações detalhadas de falha quando ele falhar, para que você possa diagnosticar o problema.

    
por 01.01.2010 / 13:55
0

Deve haver outra mensagem como esta no log do sistema que fornecerá um código de erro:

Um processo que atende ao pool de aplicativos 'MyAppPool' foi encerrado inesperadamente. O ID do processo era '3416'. O código de saída do processo era '0xc0000005'.

Você pode procurar o código de erro (o código de saída do processo) com o Ferramenta de pesquisa de erros do Microsoft Exchange . Eu sei que este problema não é sobre o Exchange, mas a ferramenta é boa para procurar códigos de erro de vários produtos da Microsoft.

Então, isso deve dar a você um ponto de partida para procurar a origem do problema. Se você ainda não o fez, sugiro mover o aplicativo para seu próprio pool de aplicativos.

Para obter mais informações sobre a falha, você pode usar Diagnóstico de Depuração . Eu tive problemas com essa ferramenta ocasionalmente, então você pode precisar usar adplus, que faz parte do Debugging Tools for Windows. Você pode usar adplus assim.

Encontre o PID do seu pool de aplicativos:

H: >% windir% \ system32 \ inetsrv \ appcmd lista wp WP "4072" (applicationPool: RDWebAccess)

Executar adplus em relação a esse PID:

adplus –quiet –crash –p 4072 –o PATH_TO_DUMPFILE

Uma vez que você tenha um dump, você pode carregá-lo no WinDbg (que também faz parte do Debugging Tools for Windows) e executar o comando "! analyze -v" para fazê-lo diagnosticar o travamento.

Sugiro desativar a reciclagem para o pool de aplicativos antes de ativar adplus ou Debug Diagnostics para que o pool de aplicativos não desconecte o depurador para reciclagem.

Dependendo do código de erro, também pode ser uma boa idéia configurar um log de contador no Perfmon para ver se você pode correlacionar qualquer contenção de recursos (alta CPU, baixa memória livre, alto número de solicitações em espera, etc) com as falhas.

    
por 01.01.2010 / 14:25