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 :

Silverlight 3 + WCF + Assembly C#


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Par défaut Silverlight 3 + WCF + Assembly C#
    Bonjour,

    Je suis totalement bloqué dans mon dev :

    Je développe une application Silverlight 3 qui doit utiliser une assembly déjà existante. J'ai donc développé un WCF que j'ajoute à mon application Silverlight et qui va taper dans l'assembly.

    Dans mon application Silverlight
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void GetData(object sender, MonService.GetDataCompletedEventArgs e)
            {
                string data = e.Result;
            }

    Là il me fait une exception dans le fichier Reference.cs :
    Le serveur distant a retourné une erreur : NotFound.
    Et ensuite dans le code :
    L'exception TargetInvocationException n'a pas été gérée

    Voila, maintenant dites moi si je me trompe :
    Cet exception ça veut dire que la méthode appelée dans l'assembly lève une exception.
    J'ai donc tester cette méthode indépendamment du WCF : Elle fonctionne.
    Ensuite j'ai blindé cette méthode de try catch(Exception e){throw new Exception("Ligne X :
    " + e.Message)} sur toutes les lignes de codes qui me paraissaient suspectes.
    et j'ai mis dans mon WCF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public string GetData()
            {
                string data = string.Empty;
                try
                {
                    data = MaMethodeDansLassembly();
                }
                catch (Exception e)
                {
                    data = e.Message;
                }
                return data ;
            }

    Donc comme ça elle va me renvoyer l'exception.
    Et donc ça m'a renvoyé ça :
    Ligne 105 : Une exception a été levée par l'initialiseur de type pour 'Data.EventLogHelper'.
    Et la ligne de code en question c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string variableStatic = EventLogHelper.LogEntryTimeFormatString;

    Et ça correspond à une variable statique dans une classe statique :
    Code C# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        public static class EventLogHelper
        {
            public static string LogEntryTimeFormatString= "dd/mm/yyyy";
        }
    ...
    Je ne comprends absolument pas pourquoi ça plante à ce niveau. Cette méthode marche parfaitement bien sans passer par le WCF.

    Est-ce que quelqu'un a une idée ? Est-ce que j'ai la bonne démarche ? J'espère vraiment pouvoir trouver la solution sinon il faudra que je développe une couche d'accès au données...

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Petite question subtile :

    Ton service wcf est il hébergé dans le même domaine que ton appli sivleright ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Par défaut
    J'ai créé un projet à part pour le WCF et ensuite je l'ai ajouté dans "Service References".

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si ton service wcf est hébergé par une autre application autre que l'application web hébergeant ton application Silverlight. Tu dois ajouter un fichier clientaccesspolicy.xml à la racine du site hébergeant ton service wcf. Vu que le message renvoyé par ton service WCF n'est pas assez claire (NOT FOUND), je doute bien que ce soit un problème lié au cross domain.

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Par défaut
    J'avais déjà rajouté ce fichier.

  6. #6
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Par défaut
    Je n'avais pas vu, mais dans ma classe statique, il y a un constructeur statique.
    Et j'ai l'impression que le problème vient de là.

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Citation Envoyé par memotech Voir le message
    J'ai créé un projet à part pour le WCF et ensuite je l'ai ajouté dans "Service References".
    Petite question: Est-ce que ce service à part a bien été créé comme un "Silverlight-enabled WCF service"? (dans le wizard, dans la section des templates Silverlight et non web) Je ne suis pas expert en WCF, mais je sais que SL ne supporte qu'une version + "light" que la "full" standard .NET...

    Christophe

  8. #8
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Par défaut
    En désespoirs de cause, j'ai commencé à écrire une nouvelle DAL, et la en la testant avec le WCF ça ne marchait toujours pas.
    J'ai cru que j'allais jeter le PC par la fenêtre et j'ai finalement trouvé...

    En fait, il y a un problème au niveau de la récupération des infos du fichier de config, je sais pas vraiment pourquoi, mais en les mettant en dur dans le code ça passe.

    Merci pour votre aide.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par memotech Voir le message
    Une exception a été levée par l'initialiseur de type pour 'Data.EventLogHelper'.
    Ok, j'avais pas bien lu ce message.

    Peux tu poster le code du constructeur de la classe EventLogHelper stp

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

Discussions similaires

  1. problème de silverlight et wcf
    Par hbib85 dans le forum Windows Communication Foundation
    Réponses: 7
    Dernier message: 07/09/2010, 15h52
  2. Silverlight 3 : WCF garder un lien vers le client
    Par obiflo dans le forum Silverlight
    Réponses: 3
    Dernier message: 28/04/2010, 18h27
  3. SilverLight et WCF, transfert de fichier volumineux
    Par Nalfeim dans le forum Silverlight
    Réponses: 5
    Dernier message: 26/08/2008, 17h31

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