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 Communication Foundation .NET Discussion :

Méthodologie de debug des TargetInvocationException


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut Méthodologie de debug des TargetInvocationException
    Bonjour,

    Il m'arrive souvent d'avoir ce genre d'exception dans mon client WCF en général du a une exception levé du coté du serveur WCF.

    Mais hélas les exception qui on lieu sur le serveur ne bloque pas le debugger ...
    J'ai bien tenté de m'abonner a l'événement Faulted de mon objet ServerHost et de mettre un point d'arrêt dans la méthode abonnée mais rien n'y fait.

    Donc voila si vous avez des techniques mieux "qu'essayer de deviner d'où vient l'exception", je suis tout ouïe

    Merci

  2. #2
    Membre expérimenté
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    Bonjour,

    Je travaille actuellement sur un service WCF qui travaille avec une application mobile et j'ai eu ce genre de soucis...

    - Il y a plusieurs moyens de débugger le serveur, mais celui que je trouve plus explicite au niveau des messages est de mettre un point d'arret sur la méthode "getReply" du proxy qui a été généré, tu peux voir le contenu de la variable "msg" qui est du XML avec le message d'erreur.

    - Ou alors, quand tu as l'exception coté client tu peux faire un "view details" et la, tu as une propriété InnerException (je pense que tu trouveras ton problème plus facilement ici pour un TargetInvocationException).


    Bonne journée...

  3. #3
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Merci d'avoir poster

    Pour la 2 je suis d'accord mais pour la 1 tu parle du proxy généré ? (donc du client ?)

    donc cela ne debugge pas réellement le serveur

  4. #4
    Membre expérimenté
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    En fait, dans la variable "msg", tu reçois l'erreur du serveur... ce n'est pas vraiment le débugger mais c'est un des moyens que j'avais trouvé pour savoir ou se situais le problème quand je ne savais plus trop où regarder d'autres...

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut
    Ca ne me paraît pas possible, ni logique, de stopper le service en cours sur un serveur. Ce que tu exécutes en debug c'est ton client. C'est possible si tu utilise le serveur de développement intégré à visual studio 2008. Après le comportement peut légèrement différer de ce que tu peux obtenir sur un service hébergé sur IIS par exemple, mais ça facilite quand même beaucoup le débugage.

    Tu peux également activer la trace des évènement pour ton serveur, qui va stocker tout ce qui se passe dans un fichier log (que tu pourras consulter avec l'outil "service trace viewer" fourni par microsoft). Le log de permet d'avoir précisément le détail d'une exception, la consultation du stacktrace te permet de savoir là où elle a lieu.

  6. #6
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Citation Envoyé par Hexba Voir le message
    Ca ne me paraît pas possible, ni logique, de stopper le service en cours sur un serveur. Ce que tu exécutes en debug c'est ton client. C'est possible si tu utilise le serveur de développement intégré à visual studio 2008. Après le comportement peut légèrement différer de ce que tu peux obtenir sur un service hébergé sur IIS par exemple, mais ça facilite quand même beaucoup le débugage.
    JE ne vois pas pourquoi on debuguerai uniquement un client... un serveur a lui aussi besoin d'être développé et donc débugué.
    Le problème du débug du serveur WCF est que lorsqu'une exception a lieu en amont de ton propre code (par exemple lors de la serialisation des objets pour l'envoie vers le client) et bien le debugueur ne s'arrête pas dessus car c du "code externe".

    Citation Envoyé par Hexba Voir le message
    Tu peux également activer la trace des évènement pour ton serveur, qui va stocker tout ce qui se passe dans un fichier log (que tu pourras consulter avec l'outil "service trace viewer" fourni par microsoft). Le log de permet d'avoir précisément le détail d'une exception, la consultation du stacktrace te permet de savoir là où elle a lieu.
    Tu as un exemple d'implémentation ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/07/2012, 22h07
  2. Réponses: 4
    Dernier message: 04/11/2010, 18h10
  3. Debug des boucles
    Par snipre dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/02/2009, 13h44
  4. Debug des uses
    Par PapyJohn dans le forum Langage
    Réponses: 2
    Dernier message: 19/11/2007, 14h16
  5. [.NET]Méthodologie et emploi des class
    Par mikyfpc dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 19/12/2006, 17h37

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