Qual é a causa de "o pool de aplicativos exceder os limites de tempo durante o desligamento"?

8

Eu tenho um site que lança 500 erros aleatoriamente (geralmente, uma vez a cada poucas horas). Eu verifiquei a exibição do evento e veja o seguinte erro:

Um processo que atende ao pool de aplicativos ' xxxxxxx ' excedeu os limites de tempo durante o desligamento. O ID do processo era 'xxxx'.

Gostaria de saber qual é a causa potencial desse problema para que eu possa corrigi-lo.

Monkey D. Luffy
fonte

Respostas:

11

Cada site (e potencialmente cada aplicativo da Web) é IIS, está vinculado a um pool de aplicativos que mantém a configuração do processo de hospedagem.

Várias dessas propriedades estão ligadas à forma como o processo é reciclado (finalizado e reiniciado). Por padrão, cada aplicativo será encerrado a cada 1740 minutos (29 horas), mas também poderá ser reciclado se não for usado por (novamente, por padrão) 20 minutos, se falhar nas respostas ao "ping" (na verdade, batidas de monitoramento de integridade) . Outros limites podem ser colocados pelo administrador.

Quando o aplicativo é reciclado, o processo do contêiner é encerrado. Possui (por padrão) 90 segundos para desligar corretamente ou será fechado à força.

Portanto, a causa do seu problema é que um dos limites de reciclagem do seu aplicativo Web é atingido, fazendo com que o IIS tente encerrá-lo. Infelizmente, o aplicativo falha ao desligar a tempo, causando o erro (temporário) 500.

Agora, há outro aspecto: se o aplicativo "falhar" (ou seja, devolver um erro do servidor) mais de (por padrão) 5 vezes em um período de 5 minutos, ele será encerrado pelo IIS e permanecerá desativado até que você reinicie manualmente isto.

Tudo isso aponta para um erro no código do seu aplicativo. Converse com o fornecedor desse código e eles ajudarão você a diagnosticar o problema exato.

Stephane
fonte