Question

J'utilise un site Web sur IIS 6 (Windows Server 2003) qui se bloque parfois.

  

Chronologie:

     

Libéré à l'état sauvage, le site Web fonctionnait bien   pendant 3 jours.

     

Le site Web est suspendu à chaque demande jusqu'à ce que   le site Web est arrêté et démarré.

     

Le site Web fonctionne pendant 2 semaines sans   problème.

     

Le site Web est suspendu à chaque demande jusqu'à ce que   le site est redémarré.

Nous voyons quelques entrées de journal d'application avant que le blocage ne commence: Application défaillante w3wp.exe, module défaillant inconnu, adresse de défaillance de la version 0.0.0.0 -------.

L’application installée sur le site Web est écrite en .Net 2.0.

Quelqu'un peut-il me guider pour résoudre ce problème? Merci!

Était-ce utile?

La solution

La meilleure solution consiste à utiliser adplus pour capturer un vidage de mémoire du processus w3wp suspendu, puis à utiliser windbg + l'extension sos pour tenter de déterminer la cause du blocage.

Vous pouvez obtenir adplus et Windbg ici: http://www.microsoft.com/whdc/devtools/debugging/default. mspx

De plus, le blog de Tess Ferrandez est une mine d’informations sur l’apprentissage de l’analyse des décharges de mémoire avec Windbg. Elle possède même un ensemble de travaux pratiques que vous pouvez effectuer en fonction de scénarios spécifiques.

http://blogs.msdn.com/tess/default.aspx

Autres conseils

Cela pourrait se produire pour plusieurs raisons. Il y a quelques années, cela se produisait sur un projet Web en production et il a fallu un appel à Microsoft pour le réparer. J'aimerais pouvoir vous donner des détails spécifiques, mais c'est ce dont je me souviens.

.NET met en cache les dossiers de votre application Web. Il existe une clé de registre sur le serveur (je ne me souviens plus où) qui définit une limite de dossiers (croyez-le ou non). La limite a été définie à 150 dossiers par défaut. Si vous aviez plus que ce nombre de dossiers dans votre application Web et que vous essayiez d'accéder au dossier 151, cela planterait IIS.

Oui, cela semble fou, mais croyez-moi, j'ai passé des semaines avec Microsoft jusqu'à ce que nous découvrions la cause de cet incident. La solution à l'époque était d'augmenter la limite du registre et de redémarrer le serveur. C’était il ya quelques années et j’espère que cela a été corrigé dans les mises à jour ultérieures, mais je vous l’offre au cas où vous utiliseriez une ancienne version de Server 2003.

Je suis désolé, je ne peux pas fournir de détails plus précis, mais je tiens simplement à vous faire part de mes expériences au cas où cela ressemblerait à votre problème.

Assurez-vous que IIS est configuré pour pouvoir recycler automatiquement son processus. Cela pourrait aider à résoudre le problème s'il s'agissait d'une fuite de mémoire. (bien ok faire face au problème pas résolu)

Mon conseil est de donner à votre application son propre pool d'applications, de sorte que vous soyez sûr à 100% que c'est l'application que vous pensez qui tire le serveur, quelle dose le journal d'application indique-t-il lorsque cela se produit?

D'après les informations que vous avez fournies, cela ressemble à une fuite de mémoire ou à un problème de connexion / thread d'ouverture de base de données.

P.s Si vous utilisez N2, il existait un problème connu: lorsque IIS était recyclé, il ne reviendrait pas.

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