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

Services Web Discussion :

FaultException<T> non détéctée sur le client


Sujet :

Services Web

  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut FaultException<T> non détéctée sur le client
    Bonjour,

    J'ai un problème concernant les FaultException<>.

    Mon Service utilise une classe "métier" pour l'accès aux données. Cette classe remonte les exceptions relatives à la BDD (exemple: clé primaire dupliquée).
    Pour simplifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     try
                {
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    throw (new Exception("L'ID (nom d'élément) est déjà utilisé."));
                }
    Le Web service récupère cette exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     try
                {
                    biz.AjouterElement(elem);
                }
                catch (Exception e)
                {
                    throw new FaultException<FaultContract_MyException>
                        (new FaultContract_MyException("Error msg"));
                }
    Et comme on le voit, il la retransmet vers le client (j'ai ici grandement simplifié en prenant toutes les exceptions, juste pour ma phase de test).

    Maintenant lorsque le client appelle le Web Service et fais se déclencher l'exception, ce dernier ne reçoit JAMAIS ma FaultException en retour (ça ne marche pas non plus avec une simple FaultException, ni une Exception...) :

    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
    16
    17
    18
    try
                {
     
                    WcfClient.ToDo() ;
     
                }
                catch (FaultException<FaultContract_MyException> ex)
                {
                    MessageBox.Show(ex.Message);
                }
                catch (FaultException<int> pp)
                {
                    MessageBox.Show(pp.Message);
                }
                catch (Exception eo)
                {
                    MessageBox.Show(eo.Message);
                }
    Lorsque que j'exécute, aucune MessageBox ne s'affiche et j'obtiens ceci au niveau de Visual Studio : (voir pj)

    ma classe pour ma FaultException est bien marquée par [DataContract].
    Dans le service contract :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     [OperationContract()]
            [FaultContract(typeof(FaultContract_MyException))]
            void ToDo();
    Je ne sais vraiment plus où chercher. J'ai déjà essayé pas mal de chôses.

    Quelqu'un aurait-il une idée pour m'aider ?
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615

  3. #3
    Invité
    Invité(e)
    Par défaut
    Tout me semble correct.

    Dis-moi ton proxy est généré à partir de VS2008 ou manuellement ?

  4. #4
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut
    Résolu.

    Il fallait décocher les ServiceModel/FaultExceptions dans Déboguer->Exceptions.

    Bizarre que l'info ne soit pas trouvable facilement sur la toile.

    Aurais-je un VS2008 configurer bizarrement ?


    Remerciements tout de même.

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

Discussions similaires

  1. [JDBC] Opération non valide sur un ensemble
    Par marti dans le forum JDBC
    Réponses: 2
    Dernier message: 13/10/2005, 19h17
  2. Rendre un champ non modifiable sur un onclick
    Par damjal dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/10/2005, 01h16
  3. Ouvrir une popup non redimensionnable sur clique
    Par magic8392 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 14/09/2005, 09h44
  4. 'undefined' non interceptable sur 'eval' ?
    Par Johnny Ryall dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/06/2005, 11h28
  5. Bip non sollicité sur les Edit
    Par David dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/09/2003, 20h32

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