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

Silverlight Discussion :

WebService, Silverlight & Architecture en couches


Sujet :

Silverlight

  1. #1
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut WebService, Silverlight & Architecture en couches
    Bonjour,
    Mon Application silverlight semble bloquer a l'envoie.

    Je m'explique:

    Je dispose d'une solution établie en couche.
    Mon application cliente est Silverlight, a travers elle je souhaiterai acceder à des données situées dans une BDD.
    Pour cela j'utilise un Service WCF dont voici le WebConfig:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
     
      <connectionStrings>
        <add name="ArtYoniDBEntities" connectionString="metadata=res://*/ArtYoniModel.csdl|res://*/ArtYoniModel.ssdl|res://*/ArtYoniModel.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS;AttachDbFilename=&quot;|DataDirectory|\ArtYoniDB.mdf&quot;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True'" providerName="System.Data.EntityClient" />
      </connectionStrings>
      <system.serviceModel>
        <services>
          <service name="BLServer.BackEnd">
            <endpoint address="ws" binding="basicHttpBinding" contract="BLServer.IBLServer" >
     
             </endpoint>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior name="">
              <serviceMetadata httpGetEnabled="true" />
              <serviceDebug includeExceptionDetailInFaults="true" />
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
      </system.serviceModel>
    </configuration>
    J'ai bien ajouté le clientAccessPolicy.
    Dans le fichier .svc du projet se trouve la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ ServiceHost Language="C#" Debug="true" Service="BLServer.BackEnd" %>
    J'ai suprimé les fichiers *.cs afin de pouvoir bénéficié d'une architecture en couche.

    Dans le code du BLServer.Backend se trouve bel est bien les atributs [Contract], en voici la preuve:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [ServiceContract]
        public interface IBLServer
        {
              [OperationContract]
             List<Customers> GetListOfCustomers();
              [OperationContract]
             List<Contacts> GetListOfContacts();
    La couche Server ne fait que appel a la couche DAL, dans laquelle j'ai utilisé un Domain Service afin de générer automatiquement pour moi les fonctions CRUD.
    Enfin, dans le DAL se trouve un fichier WebConfig pour la connection a la base de donnée.

    Je pense avoir tout fait comme il faut, et je ne sais pas pourquoi ca plante.
    Une idée?
    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Ben déjà est ce que le service web est correctement appelé?

    Un break point sur le constructeur du webService pourrait déjà eclaircir la situation.
    Fiddler2 permet également de connaitre les demandes faîtes pas silverlight. Si il y a déjà une erreure a ce niveau là...
    Si jamais l'appel est bien effectué, mais que le débug ne fonctionne pas il faut attacher la solution du webService au serveur qui l'heberge ( (Menu Debug-> attach to process) ).

    Pour l'instant ca manque de détails .

  3. #3
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut Je connais vraiment pas fiddler
    Je viens de découvrir ce programme et j'ai beau chercher sur google je ne vois pas comment faire pour qu'il m'aide a débogguer mon application (je suis en localhost).

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Il suffit de lancer fiddler et s'assurer qu'en bas a gauche le "capturing" soit inscrit. Si ce n'est pas le cas, clicks sur la case la plus en bas a gauche.
    Ensuite lorsque sur internet explorer tu navigues, toute les requetes HTTP vont être listé.
    Ouvre ta page silverlight, et regardes les appels qui sont faits. Quand c'est rouge c'est qu'il y a un probleme!

  5. #5
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Je ne vois rien de rouge.
    Mais sur quel onglet je dois me concentrer?

  6. #6
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    youpi!!
    J'ai recu une exception: XamlParseException.
    avec comme phrase d'acompagnement:
    Impossible de créer un 'System.Windows.Thickness' à partir du texte '10,0,0,,4'
    Apparemment un problemme de binding!!
    L'exeption est levé a la fonction InitializeComponent() qui se trouve dans la MainPage.xaml.

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    -_-'

    Rien à voir avec le web service alors pour le moment!

    Ya une virgule en trop avant le 4.

  8. #8
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    effectivement la virgule etait de trop.
    Mais maintenant j'ai une nouvelle exception de type CommunicationException:
    Une erreur s'est produite en tentant d'effectuer une demande à l'URI 'http://localhost:53027/ArtYoniWebService.svc/ws'. Ce problème peut être dû à une tentative d'accès à un service entre domaines sans qu'une stratégie entre domaines appropriée soit en place, ou une stratégie inadaptée aux services SOAP. Il est possible que vous soyez contraint de contacter le propriétaire du service pour publier un fichier de stratégie entre domaines et veiller à ce qu'il autorise l'envoi d'en-têtes HTTP SOAP. Cette erreur peut également être liée à l'utilisation de types internes dans le proxy de service Web sans utiliser l'attribut InternalsVisibleToAttribute. Consultez l'exception interne pour plus de détails.
    Elle est levée a ce niveau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          public System.Collections.Generic.List<BLClient_Silverlight.ArtYoniServiceReference.Categories> EndGetListOfCategories(System.IAsyncResult result) {
                    object[] _args = new object[0];
                    System.Collections.Generic.List<BLClient_Silverlight.ArtYoniServiceReference.Categories> _result = ((System.Collections.Generic.List<BLClient_Silverlight.ArtYoniServiceReference.Categories>)(base.EndInvoke("GetListOfCategories", _args, result)));
                    return _result;
    C'est du code generer automatiquement par visualStudio lorsque j'ai crée ma Reference Service dans mon projet Silverlight.

    (Ca commence a se rapprocher du web service)

  9. #9
    Membre confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Par défaut
    peut être que ce poste va t'aider :

    http://www.developpez.net/forums/d10...rvice-domaine/

  10. #10
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Le virtualPath de monWebService est deja a "/".
    Cependant en ce moment j'obtient l'erreur suivante:
    CommunicationException Le serveur distant a retourné une erreur : NotFound.

  11. #11
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Peut etre me suis je trompé en ajoutant mon accesspolicy.
    En fait je sais pas trop s'il est a la racine (dailleur je comprend pas trop cette histoire de racine).

    L'appli Silverlight est sur le port 53030 et le webService sur le port 53027.
    Quand je cherche a voir mon accesspolicy.xml sur le navigateur, il apparait sur le port 53027.

    C'est bon?

  12. #12
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Fiddler te permet de voir ce genre de chose.
    Si le accessPolicy.xml est en erreur 404 c'est qu'effectivement il n'est pas trouvé.

  13. #13
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Tu as un bon tutoriel pour apprendre a se servir de Fiddler.
    Ca fait deja plusieurs jours que je bloque sur ce projet et me mettre a essayer de comprendre comment marche se truc ne m'aide pas vraiment (pour l'instant) a resoudre mon probleme.

    Ca devrait pas etre sorcier?!
    C'est sur que des gens l'ont deja rencontré....

  14. #14
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    S'il vous plait, quelqu'un pour m'aider?

    Apres avoir ajouté le AccessPolicy (qui se trouve bel est bien etre a la racine du serverWeb), je suis partie de la 1ere exception a celle du not Found.

    Merci

  15. #15
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Je comprend pas où tu peches pour fiddler!
    http://www.fiddler2.com/fiddler/help/video/
    Normalement tu le lances et tu reviens a visual studio. Tu lances ton débug avec silverlight qui va s'ouvrir, ensuite tu retournes sur fiddler et des choses vont apparaitre dans la partie gauche . Ces choses sont les demandes HTTP (url) faites par internet explorer.
    Si silverlight ne trouve pas le webservice il y aura au moins une ligne en rouge (erreur 404).
    Si il n'y a rien en rouge c'est sans doute qu'il y a une erreur dans le webservice. Dans ce cas là il faudra débugger en mettant des breaks points dans ton webservice.

  16. #16
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Merci a tout ce qui ont participé a m'aider.
    Mon probleme est résolu.
    Je pense en faire l'objet d'un tutoriel, car j'ai cheché partout sur le net, et je n'ai absolument rien vu qui puisse m'aider.

    Encore une fois merci

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

Discussions similaires

  1. Développement en architecture 3 couches ?
    Par dinbougre dans le forum Architecture
    Réponses: 18
    Dernier message: 30/06/2011, 14h35
  2. Architecture en couche avec Silverlight.Net ?
    Par Invité dans le forum Silverlight
    Réponses: 7
    Dernier message: 12/02/2009, 11h08
  3. [MAVEN2] vérification d'architecture en couche
    Par coco62 dans le forum Qualimétrie
    Réponses: 7
    Dernier message: 15/05/2007, 09h42
  4. question : architecture en couches
    Par Spacy_green dans le forum Développement
    Réponses: 10
    Dernier message: 25/05/2006, 18h08
  5. Architecture multi couches avec librairie borland?
    Par seb_asm dans le forum JBuilder
    Réponses: 4
    Dernier message: 08/06/2005, 10h14

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