2008-08-21 19 views
4

J'ai une application Web qui parfois s'arrête juste au-dessus de la charge lourde. Pour le faire revenir, je dois tuer le processus "dllhost.exe". Est-ce que quelqu'un sait quoi faire?IIS 6/COM + se bloque

Ceci est une application ASP classique (VBScript) avec beaucoup d'objets COM +.

Le serveur a la configuration suivante:

  • Intel Core 2 Duo 2,2 GHz/4 Go de RAM
  • Windows Server 2003 Web Edition SP2
  • IIS 6,0

Il y a quelques erreurs dans le journal des événements liés aux objets COM. Mais pourquoi les erreurs dans les objets COM planteraient tout le serveur?

Les objets COM sont des objets PowerBuilder déployés en tant qu'objets COM.

Est-ce que IIS 7.0 (beaucoup) est plus stable que IIS 6.0?

Répondre

2

Cela ressemble à des objets COM douteux causant le problème .. les chargez-vous dans le "Application", si vous le faites alors ils sont threadsafe; ou sont-ils utilisés et mis au rebut à chaque demande? Oui, recycler toutes les quelques heures aiderait à «cacher» le problème, mais ils devraient être débogués et corrigés correctement ... avez-vous essayé de diviser/conquérir pour découvrir quel objet COM est le problème ... Je peux imaginer C'est compliqué sur un environnement de production, vous devez donc mettre en place de lourds tests automatisés pour reproduire le problème localement, puis vous pouvez faire quelque chose à ce sujet.

1

Il existe probablement des erreurs dans votre journal des événements sous les catégories Application et Système. Essayez de trouver l'origine de ces erreurs ou les poster ici, nous verrons ce que nous pouvons faire :)

Edit: Silveira Une @ Daniel fuite de mémoire est probable. Quel objet COM + utilisez-vous? J'ai eu quelques problèmes avec Excel avec une application que je supporte.

2

Vous avez une fuite de mémoire :)

Cette entrée de blog est ma bible pour le dépannage IIS:

http://blogs.msdn.com/david.wang/archive/2005/12/31/HOWTO_Basics_of_IIS6_Troubleshooting.aspx

Si vous ne pouvez pas auditer votre code et de trouver où les fuites de référence sont, une alternative est de recycler l'application en redémarrant IIS toutes les 24 heures environ. Vous pouvez simplement configurer un script de ligne de commande en tant que travail serveur pour ce faire.

+0

Vous pouvez simplement recycler le pool d'applications. L'onglet Recyclage est construit juste pour cela. Aucun script requis. – jwmiller5