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 crossdomain ok avec silverlight 3


Sujet :

Silverlight

  1. #1
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Par défaut webservice crossdomain ok avec silverlight 3
    Bonjour,

    je tente de consommer un webservice dans un btn_click qui doit me revoyer un "hello name" dans une combobox.

    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
     
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                comboBox1.Items.Add(textBox1.Text);
     
                ServiceReference1.HelloYouPortClient service =
                    new ServiceReference1.HelloYouPortClient();
                service.getHelloCompleted +=
                    new EventHandler<ServiceReference1.getHelloCompletedEventArgs>(service_getHelloCompleted);
     
                service.getHelloAsync("nom","prenom");
            }
     
            public void service_getHelloCompleted(object sender,
                    ServiceReference1.getHelloCompletedEventArgs e)
            {
                MessageBox.Show(e.Result);
            }
    Le "add service reference" s'est bien passé et le webservice fonctionne mais il n'est pas sur le même domaine.

    Mon silverlight est local et le webservice est distant.

    Est-ce que cela devrait marcher ?

  2. #2
    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
    Tu doit définir un "clientaccesspolicy.xml" sur la racine du domaine qui contient le web service referencé dans SL et mettre dedans ceci :


    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8"?>
    <access-policy>
      <cross-domain-access>
        <policy>
          <allow-from http-request-headers="*">
            <domain uri="*"/>
          </allow-from>
          <grant-to>
            <resource path="/"
                include-subpaths="true"/>
          </grant-to>
        </policy>
      </cross-domain-access>
    </access-policy>

  3. #3
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Par défaut
    Cela a été fait. Ca ne me retourne rien.

  4. #4
    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
    Tu doit avoir un truc du genre dans ton code :

    Code c# : 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
      private void button1_Click(object sender, RoutedEventArgs e)
            {
                comboBox1.Items.Add(textBox1.Text);
                WebServiceHelloYouSoapClient proxyMonWebService = new WebServiceMonServiceSoapClient ();
     
     
                proxyMonWebService.getHelloAsync("nom","prenom");
                proxyMonWebService.getHelloCompleted += service_getHelloCompleted;
     
            }
     
            public void service_getHelloCompleted(object sender,
                    ServiceReference1.getHelloCompletedEventArgs e)
            {
                MessageBox.Show(e.Result);
            }

    test ça

  5. #5
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Super explicite comme réponse.

    Si cela ne te retourne rien, que se passe-t-il? Sans le crossdomain, normalement tu as une exception.

    Si tu n'en as pas, tu passe en en debug step by step, et tu nous remonte plus d'infos

  6. #6
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Par défaut
    Lapinpanda, je n'arrive pas à débugger et je n'avais aucune exception. Quand j'attache le process je n'ai toujours rien. Je sais, ce n'est pas normal... J'avais des breakpoint pourtant dans VS2010. Benh tient je vais faire le test avec express.

    NTIC13, merci... J'utilise les fonction d'ici : http://www.silverlightshow.net/items...erlight-2.aspx

    Ca n'a pas l'air encore au point, je vais attendre silverlight 5 ou 6

  7. #7
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    AH, mais si tu n'a aucun breakpoint qui marche, c'est normal

    Par défaut, VS c'est mal foutu quand il fait un projet SIlverlight car le projet .WEB tu dois le modifier.

    Tu fais Property / onglet Web et tu coches Silverlight pour activer le débugguing SL

  8. #8
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Par défaut
    SL était coché... Tant pis, je n'ai pas de chance avec microsoft décidément. Je vais faire du flash

    Au fait, mon webService était en php, je ne sais pas si cela a une incidence vu que l'exemple que j'ai suivi était pour des asmx. Les fonctions me semblaient ok.

    J'ai trouvé un autre article intéressant, a partir d'un web service PHP :
    http://code.dortikum.net/2008/08/03/silverlight-php/

    On préconise de changer ceci dans Reference.cs ... que je ne trouve pas dans VS2010
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [System.ServiceModel.XmlSerializerFormatAttribute(Style=System.ServiceModel.OperationFormatStyle.Rpc)

  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
    Reference.cs est un fichier généré, je ne sais pas si c'est une bonne idée de le modifier à la main, ceci va rendre la maintenance du code difficile. Si jamais le fichier est régénéré tu va perdre tes modifications dessus

  10. #10
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Par défaut
    ok.. merci

  11. #11
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Par défaut
    Bon et bien j'en conclus que ce n'est pas évident. Une chose aussi importante, c'est un non sens.

    J'ai trouvé une screencast intéressant néanmoins pour dialoguer avec php depuis silverlight :



    Je vais attendre de voir les prochaines versions, c'est décidé...

    Si quelqu'un à une réponse ou un avis, je suis preneur.

    Bàv.

  12. #12
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Les premières choses à faire sont de :

    - tester avec Fiddler si ton "clientaccesspolicy.xml" est récupéré convenablement par ton appli et si le WebService est correctement appelé ?

    - vérifier que ton WebService fonctionne convenablement (en l'appelant d'une appli de ton Browser Web si posible ou d'une appli WinForm de test)

  13. #13
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Par défaut
    bonjour désolé pour mon absence ... la discussion continue ici

Discussions similaires

  1. utiliser linq avec silverlight
    Par almora007 dans le forum Silverlight
    Réponses: 9
    Dernier message: 29/05/2008, 18h45
  2. Player Video avec SilverLight 1.0
    Par BigWill dans le forum Silverlight
    Réponses: 19
    Dernier message: 15/04/2008, 11h05
  3. Problème avec Silverlight et les webservices
    Par Baathor dans le forum Silverlight
    Réponses: 8
    Dernier message: 23/01/2008, 23h20
  4. Exécution de WebServices Delphi 7 avec Cassini
    Par delphi5user dans le forum Delphi
    Réponses: 7
    Dernier message: 15/02/2007, 14h12
  5. [C#][WebServices] Appel methode avec une classe en paramètre
    Par bran_noz dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/09/2004, 16h41

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