IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Application console DotNet 2.0 bloqué, pas d'exception levée


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut Application console DotNet 2.0 bloqué, pas d'exception levée
    Bonjour,

    J'ai un programme (application console) vb.net 2.0 utilisant des librairies de génération PDF et graphiques. Ce programme lancé sur ma machine fonctionne bien. Je place ce programme sur une autre machine, je le lance en ligne de commande. Tout va bien. Je le lance via un service windows (installé avec droits admin) avec l'objet .net process, et il bloque toujours au meme endroit. Je rajoute des traceurs pour savoir exactement ou il plante. Il continu à planter à un endroit différent du code. Je le rééxécute et il continu toujours à planter toujours au meme endroit (endroit qui a changé depuis que j'ai ajouté des lignes de code). Je rajoute encore des lignes de traceurs. Il plante ailleur. je le relance il plante encore au meme endroit. Même si ce n'est pas ce morceaux de code qui est remis en question je l'explique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // debut de programme
    traveur.ecrire("debut prog")
    // boucle un certain nombre de fois
    ...
    traceur.ecrire("etape 1")
    try
    monobjetsimple.variabletypestring = autreobjetsimple.autrevariabletypestring
    catch ex as exception
    traceur.ecrire("erreur : " & ex.tostring)
    end try
    traceur.ecrire("etape 2")
    ...
    // fin boucle
    traveur.ecrire("fin prog")
    // fin programme
    quand je regarde mon fichier log, j'ai :

    ...
    debut prog
    etape 1


    ... et rien d'autre
    Ca semble planter soit à l'affectation de la variable soit au traceur avant de logger dans le fichier. Je me répète, si je rajoute des lignes de traceur, ca va planter ailleur, mais toujours au meme endroit ailleur (hein !?

    Je n'ai jamais d'exception de levée. ce n'est pas un prog avec gestion implicit de plusieurs threads. Je n'ai rien dans le journal d'evenement windows.

    Le programme semble être en execution suspendue.
    D'un point de vue mémoire du processus. La taille varie est se stabilise au moment de la suspension d'execution puis quelques minutes apres augmente de ~2Mo puis stagne indéfiniment. Le programme occupe 28Mo au total en mémoire et la machine à 1.7Go de mémoire vive libre.

    J'ai une gestion d'exception assez précise dans le sens ou chaque bloque de code est englobé par un try catch, et pour ce cas de figure j'ai ajouté le code suivant qui ne lève rien (et dont je ne comprend pas bien l'utilisé dans non plus)

    ----
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim currentDomain As AppDomain = AppDomain.CurrentDomain
    AddHandler currentDomain.UnhandledException, AddressOf MYExceptionHandler
    ----

    Mes questions :

    Avez vous déjà rencontré ce problème ?
    Comment le débuguer, avec quels outils ?

    Je suis actuellement en train de me dire que c'est un pb mémoire et que je vais devoir dérouler tout le prog pour voir si tout les objets sont bien "fermés/libérés" (pas de controle, puisque c'est le GC qui gère, mais bien coder c'est important mais rien n'est moins sûr que ca corrige le pb.

    Environements :

    Mon poste :
    win xp pro sp2 / visual studio 2005 / DotNet 2 / 2Go Ram

    Serveur :
    win server 2003 web edition sp 2 / 2Go Ram

  2. #2
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut
    [Petit historique]

    Depuis mon premier post, on a réussi a reproduire le bug en local. on a ciblé le pb autour de l'objet dotnet process utilisé dans le service qui lance le programme qui "plante".

    [/Petit historique]

    Bon, on a contourné le pb. Comme dans cette situation on a pas besoin de rediriger la sortie standard. On met la propriété redirectstandardoutput de l'objet process à false et le problème n'est plus. Il se pourrait qu'un des composants (EntLib) que l'on utilise dans le programme1.exe puisse provoquer une sortie inapropriée sur la console alors que nous l'utilisons pour "logger" en BDD, même si nous respectons les conseils de la msdn sur la propriété redirectstandardoutput.

    Merci d'avoir suivi ce post.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WS 2008] Application console : copier / coller ne fonctionne pas
    Par omar9571 dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 16/02/2012, 06h13
  2. VS2010 Application Console "process ne repond pas"
    Par xian21 dans le forum Développement Windows
    Réponses: 5
    Dernier message: 23/08/2010, 17h20
  3. Temporisation qui ne bloque pas l'application
    Par Zorgloub dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/02/2008, 16h55
  4. Mes applications console ne s'éxecutent pas
    Par mok16 dans le forum C++
    Réponses: 14
    Dernier message: 12/01/2007, 23h54
  5. mes applications consoles ne fonctionnent pas
    Par mok16 dans le forum C++Builder
    Réponses: 1
    Dernier message: 10/01/2007, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo