Quelle est la cause du «pool d'applications dépassé les limites de temps lors de l'arrêt»?

8

J'ai un site Web qui jette 500 erreurs au hasard (généralement, toutes les quelques heures). J'ai vérifié la vue des événements et je vois l'erreur suivante:

Un processus desservant le pool d'applications « xxxxxxx » a dépassé les limites de temps lors de l'arrêt. L'ID de processus était 'xxxx'.

Je me demande quelle est la cause potentielle de ce problème afin que je puisse le résoudre?

Monkey D Luffy
la source

Réponses:

11

Chaque site Web (et potentiellement chaque application Web) est IIS est lié à un pool d'applications qui détient la configuration du processus d'hébergement.

Plusieurs de ces propriétés sont liées à la façon dont le processus est recyclé (terminé et redémarré). Par défaut, chaque application sera interrompue toutes les 1740 minutes (29 heures) mais elle peut également être recyclée si elle n'est pas utilisée pendant (encore une fois, par défaut) 20 minutes, si elle ne répond pas au "ping" (en fait, la surveillance de la santé bat) . L'administrateur peut fixer d'autres limites.

Lorsque l'application est recyclée, le processus de conteneur est arrêté. Il a (par défaut) 90 secondes pour s'éteindre correctement ou il sera fermé de force.

Ainsi, la cause de votre problème est qu'une des limites de recyclage de votre application Web est atteinte, ce qui oblige IIS à y mettre fin. Malheureusement, l'application ne s'arrête pas à temps, provoquant cette erreur (temporaire) 500.

Maintenant, il y a un autre aspect: si votre application "échoue" (c'est-à-dire renvoie une erreur de serveur) plus de (par défaut) 5 fois en 5 minutes, elle sera arrêtée par IIS et restera fermée jusqu'à ce que vous redémarriez manuellement il.

Tout cela indique une erreur dans votre code d'application. Parlez au fournisseur de ce code et ils vous aideront à diagnostiquer le problème exact.

Stéphane
la source