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 :

problème pour utiliser un Web service.


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Par défaut problème pour utiliser un Web service.
    Salut à tous,

    Je suis en train de créer une app Silverlight qui utilise un Web service.

    J'ai trouvé un exemple sur le Net qui marche très bien dans cette configuration :
    une solution qui contient :
    (1)le site Web contenant le Web service et
    (2)l'appplication Silverlight qui contient la page Page.xaml.

    Quand le lance l'application, tout s'affiche bien (l'appel au Web service s'effectue bien).

    Mais à terme je veux en faire un site accessible par tout le monde et lui donner une url fixe (pas comme quand Visual Web Developer Express attribut une adresse sur le serveur de développement).

    Donc j'ai déclaré le site Web (qui contient le service Web) dans IIS et j'ai comme adresse : http://localhost/WebServiceApp_Web/.


    Et j'ai recréé une solution avec :

    (1) le Site Web contenant le service Web.
    (2) l'application SL contenant l'apel au service Web et la page xaml.
    (3) le site Web contenant la page aspx qui contient l'appel à la page Page.xaml.

    Mais quand je lance l'application, l'appel au Web service ne se fait plus.

    Auriez-vous une solution ?

    Merci beaucoup par avance.

    Laurent.

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par laurent_diep Voir le message
    Salut à tous,

    Je suis en train de créer une app Silverlight qui utilise un Web service.

    J'ai trouvé un exemple sur le Net qui marche très bien dans cette configuration :
    une solution qui contient :
    (1)le site Web contenant le Web service et
    (2)l'appplication Silverlight qui contient la page Page.xaml.

    Quand le lance l'application, tout s'affiche bien (l'appel au Web service s'effectue bien).

    Mais à terme je veux en faire un site accessible par tout le monde et lui donner une url fixe (pas comme quand Visual Web Developer Express attribut une adresse sur le serveur de développement).

    Donc j'ai déclaré le site Web (qui contient le service Web) dans IIS et j'ai comme adresse : http://localhost/WebServiceApp_Web/.


    Et j'ai recréé une solution avec :

    (1) le Site Web contenant le service Web.
    (2) l'application SL contenant l'apel au service Web et la page xaml.
    (3) le site Web contenant la page aspx qui contient l'appel à la page Page.xaml.

    Mais quand je lance l'application, l'appel au Web service ne se fait plus.

    Auriez-vous une solution ?

    Merci beaucoup par avance.

    Laurent.
    Une solution pour ?

    Pour la 2, tu as bien ajouté ton clientaccesspolicy.xml ?

    Sinon pour avoir ton WS à adresse fixe, ben une fois déployé tu peux modifier ton endpoint dans ton ServiceReferences.ClientConfig.xml.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Par défaut
    Skyounet :

    J'ai bien mis le fichier clientaccesspolicy.xml dans c:\inetpub\wwwroot\.
    Vu que mon projet se trouve dans :
    C:\Inetpub\wwwroot\WebServicesApp_Web.

    Et voici le contenu du fichier 'ServiceReferences.ClientConfig' :

    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
     
    <configuration>
        <system.serviceModel>
            <bindings>
                <basicHttpBinding>
                    <binding name="BasicHttpBinding_ISimpleWCF" maxBufferSize="2147483647"
                        maxReceivedMessageSize="2147483647">
                        <security mode="None" />
                    </binding>
                </basicHttpBinding>
            </bindings>
            <client>
                <endpoint address="http://poste405.s1.factory/WebServicesApp_Web/SimpleWCF.svc"
                    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISimpleWCF"
                    contract="SimpleSVC.ISimpleWCF" name="BasicHttpBinding_ISimpleWCF" />
            </client>
        </system.serviceModel>
    </configuration>
    Qu'ai-je oublié ?

    Merci.

    Laurent.

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Quelle est ton erreur exactement ?

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Par défaut
    L'appel au Web service ne se fait plus.

    Quand il y a l'appel asynchrone, au bout d'un moment j'ai une erreur de TimeOut.

    Laurent.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Par défaut
    J'ai encore des bugs !

    J'ai réinstallé 'Visual Studio 2008 SP1' et 'Silverlight Tools' mais rien n'y fait :

    j'ai toujours des bugs en essayant les codes les plus simples (concernant les Web services).

    Par exemple quand je teste un 'Silverlight enabled WCF service', (J'ai essayé 'ASMX service', 'WCF service').

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public string EndGetData(System.IAsyncResult result) {
     
    object[] _args = new object[0];
     
    string _result = ((string)(base.EndInvoke("GetData", _args, result)));
     
    return _result;
    }

    ==> CommunicationException at the line : 'string _result = ((string)(base.EndInvoke("GetData", _args, result)));'

    Qu'ai-je oublié ?

    Merci.

    Laurent.

  7. #7
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par laurent_diep Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public string EndGetData(System.IAsyncResult result) {
     
    object[] _args = new object[0];
     
    string _result = ((string)(base.EndInvoke("GetData", _args, result)));
     
    return _result;
    }
    Oula.

    Normalement quand tu veux appeler des méthodes d'un sevice WCF, tu as plusieurs choses à faire.

    1. Instancier ton service
    2. T'abonner à l'évènement NomMethodeCompleted
    3. Appeler la méthode asynchrone NomMethodeAsync
    4. Récupérer le résultat dans la callback : e.Result

    Tu as bien toutes ces étapes ?

    On n'oublie pas non plus le fichier clientaccesspolicy.xml si besoin est.

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Par défaut
    Skyounet :

    Je ne pense pas avoir oublié qqchose...

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private void CallServiceButton_Click(object sender, RoutedEventArgs e)
    {
     
    WebServiceForCharts35.EnabledWCF.EnabledWCFClient proxy = new WebServiceForCharts35.EnabledWCF.EnabledWCFClient();
     
    proxy.GetDataCompleted += new EventHandler<WebServiceForCharts35.EnabledWCF.GetDataCompletedEventArgs>(proxy_GetDataCompleted);
     
    proxy.GetDataAsync();
     
    }
    et plus loin j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void proxy_GetDataCompleted(object sender, WebServiceForCharts35.EnabledWCF.GetDataCompletedEventArgs e)
            {
                OutputText.Text = e.Result;
            }
    Laurent.

  9. #9
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ok, et là ça fonctionne pas non plus c'est ça ?

    Peut-être un zip de ta solution ?

  10. #10
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Par défaut
    Je veux bien t'envoyer le Solution sous zip.

    Y a t'il un moyen simple de zipper toute la solution (outil Visual Studio...) ou dois-je zipper tous les répertoires concernés ?

    Merci.

    Laurent.

  11. #11
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par laurent_diep Voir le message
    Je veux bien t'envoyer le Solution sous zip.

    Y a t'il un moyen simple de zipper toute la solution (outil Visual Studio...) ou dois-je zipper tous les répertoires concernés ?

    Merci.

    Laurent.
    Tu zip le repertoire principal.

  12. #12
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Par défaut Solution zippée
    Skyounet,

    Désolé du retard : le week-end, je n'ai pas accès à la machine...

    Voici le zip, le fichier solution est dans : \WebServiceForCharts_3.5\WebServiceForCharts35.

    Merci.

    Laurent.

    WebServiceForCharts_3.5.zip

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Par défaut
    je pense avoir le même probleme....
    Ton service fonctionne si tu testes http://adresseIPort/nomservice.svc

    mais ton application appelle http://nomMachineort/nomservice.svc

    Ai-je bon ?

  14. #14
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Par défaut
    mictif :

    Non je n'ai pas ce problème.

    En fait j'ai refait un exemple simple en utilisant le template : "Silverlight-enabled WCF service".

    Et cela marche.

    Je pense que le problème venait du code dans le Web service : comme je n'arrivais pas à déboguer le code dans le service, cela me donnait une erreur que je ne comprenais pas.

    Voilà.

    Laurent.

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

Discussions similaires

  1. JQuery - Problème d'utilisation du web service lists.asmx
    Par Spaeda dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 18/03/2010, 13h39
  2. Problème pour contacter un web service
    Par squallJ dans le forum PL/SQL
    Réponses: 2
    Dernier message: 19/08/2009, 11h39
  3. problème pour appeler un web service
    Par alexlevenere dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 06/01/2009, 16h24
  4. Problème pour utiliser JWS
    Par yas2006 dans le forum JWS
    Réponses: 11
    Dernier message: 02/07/2007, 13h28
  5. Problème pour définir un web service client
    Par GRicco dans le forum NetBeans
    Réponses: 5
    Dernier message: 10/04/2007, 09h54

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