[ASP.NET 2.0] "le thread a été abandonné"

Bonjour,

j’ai une appli ASP.NET 2.0 qui tourne sur un serveur depuis 1 ans sans soucis. Cette Appli est assez simple dans son interface utilisateurs puisque c’ est un simple formulaire. Une fois validé, l’appli exécute une sequence d’action :

  1. Raffraichir des documents Business Object et les sauvegarder dans un repertoire (Via des web services)
  2. Restaurer des documents PDF venant d’une GEIDE (Via un objet dédié)
  3. Fusionner l’ensemble de ces documents dans un documents PDF (Via un objet dédié avec la librairie PDFSharp).

Les traitements 1 + 2 + 3 s’enchaine et mettent entre 2mn et 10 mn en fonction des paramettres du formulaire et tout ca fonctionne tres bien sur un serveur 2003.

Durant cette année, j’ai installé l’application sur un autres serveur…sans soucis.

La semaine derniere bis repetita, j’installe l’appli sur un autres de nos serveurs…et là : ca coince !
Les indices :
=> Je fais (maintenant) tourné l’appli en mode débug (pour etre sur que le timeout de 90 s ne joue pas sachant que j’ai aussi mis parce que je suis du genre à mettre une ceinture avec des bretelles).
=> Ca plante de facons alléatoire au niveau 2 ou au niveau 3 (Donc, pas à une ligne precise…Le niveau 1 durant moin d’une minute, ca ne plante jamais a ce niveau)
=> Ca plante au bout d’un temps variant de 1 à 2 mn (Donc pas de timeOut fixe particulier)
=> Quand le traitement est plus rapide (moins de 2mn)…ca passe.

Le message d’erreur au niveau du journal des événements est des plus laconiques :

Code de l'événement : 3005 Message d'événement : Une exception non gérée s'est produite. Heure de l'événement : 30/10/2007 10:00:52 Heure de l'événement (UTC) : 30/10/2007 09:00:52 ID d'événement : 785489f63e364cc3a55eaa2528af1ed7 Séquence d'événements : 19 Occurrence de l'événement : 1 Code de détail de l'événement : 0 Informations d'application : Domaine d'application : /LM/W3SVC/765438520/Root-1-128382082360367228 Niveau de confiance : Full Chemin d'accès virtuel de l'application : / Chemin d'accès à l'application : D:\******** Nom d'ordinateur : ******* Informations sur le processus : ID de processus : 3968 Nom du processus : w3wp.exe Nom du compte : AUTORITE NT\SERVICE RÉSEAU Informations sur l'exception : Type d'exception : ThreadAbortException Message d'exception : Le thread a été abandonné. Informations sur la demande : URL de la demande : **************** Chemin d'accès à la demande : /DossierBO2.aspx Adresse d'hôte de l'utilisateur : **************** Utilisateur : ************* Est authentifié : True Type d'authentification : NTLM Nom du compte de thread : ***************** Informations sur le thread : ID de thread : 5 Nom du compte de thread :************* Emprunte une identité : False Trace de la pile : à System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) à System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error) à System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) à System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) Détails de l'événement personnalisé :
J’ai comparer les deux machine.config => Pas de difference…J’ai comparer les 2 configurations de IIS => Pas de difference.

La, je seche un peu et si vous aviez un peu d’humidité ca me raffraichirai…
Merci

Machine multicore la derniere? (ou multi CPU?)
Changement d’architecture? (32/64 bits avec interop qqpart?).
Consomation memoire ou autre ressource qui gonfle au dela des parametres IIS de recyclage d’app pool (avec peut etre effet indirect du a un des deux param ci dessus ?) PDFSharp qui se marche dessus? Probleme hard? RAM foireuse?
Ptet un lock qui manque qqpart aussi…

Les machines sont les memes (multi processeurs), windows serveurs 2003 R2 SP1. Par contre, ca:

"Consomation memoire ou autre ressource qui gonfle au dela des parametres IIS de recyclage d’app pool (avec peut etre effet indirect du a un des deux param ci dessus ?) "

me semble une super bonne piste. l’appli à été installé dans un pool de connexion séparé et sur un autre pool , il y a des pages ASP (page d’acceuil de la boite…tres simple) avec 500 utilisateurs qui se connecte… ce qui n’étais pas le cas sur les autres serveurs (Ou toutes les applications était sur le meme pool de connexion.

Je viens de refaire un test. Le serveur à 1 Go de RAM et avec le lancement de l’application , il passe de 448 à 477 MO et ce stabilise…Bon je vais essayer de voir au niveau de la configuration du pool d’application (ce sont actuellement les parametres par défaut)…

Merci

Bon,
pour la configuration d’un pool d’application, je seche un peu…J’ai beau modifier les parametres, ca change rien.

J’ai tenté l’experience, pour le faire planter à l’étape 1 du processus, de rafraichir de gros documents BO (Gros au sens “Plus long a rafraichir”, les documents générer faisant 5 Mo maximum.) et ca plante…

Y a t’il un moyen pour tracer ou faire du monitoring sur une appli IIS et un pool particulier (Occupation mémoire, sessions…) ?

Parce que la , ca va finir en combat de sourd entre moi et la prod…

Oui t’as des performance counter pour tout ca.