2011-10-26 2 views
0

Je sais que cela ressemble à quelques autres questions, mais aucune des réponses ne m'a aidé. J'ai un service web .asmx fonctionnant sous Windows 2008, IIS 7, et me connecte avec MySql via MySql Connector Net. Le service Web prend une chaîne, la convertit en XML avec Xmldocument ... puis boucle sur les nœuds enfants et met enfin à jour la base de données. Sur une application de console sur la même machine, il fonctionnera dans 2-3 secondes. Dans le service Web .asmx, cela prend 2-3 minutes. Je me suis assuré que les données arrivent immédiatement dans le code ... cela prend vraiment une éternité à courir. J'espère que quelqu'un peut me diriger vers certains paramètres dans le pool d'applications ou dans IIS pour lui donner plus de ressources. C'est une machine de RAM de 1,7 Go, je ne pense pas que les ressources devraient être un problème. Cela est appelé par le programme Python, mais je l'ai appelé à partir d'un couple d'endroits différents et encore c'est si lent. S'il vous plaît épargnez la conférence sur WCF car certains d'entre nous n'ont pas un contrôle complet sur ce que nous développons de toute façon. Toute aide pour me diriger dans la bonne direction serait géniale!Exécution extrêmement lente du code de service Web .asmx

Répondre

0

Activez le Tracing ou utilisez un profiler pour trouver ce qui prend tant de temps.

Sur quelques intuitions, est-ce la même base de code entre la console et ASMX (par exemple ce code est-il dans une classe distincte et appelé à partir des deux, ou copié et collé?)? Et quelle est la taille du blob XML envoyé au serveur? Construire le DOM prend du temps, si vous le lisez juste une fois et générez des insertions, regardez à l'aide de XmlReader à la place.

J'espère que l'un d'entre eux vous permettra d'aller dans la bonne direction.