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 :

Interaction entre WebService et silverlight


Sujet :

Silverlight

  1. #1
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut Interaction entre WebService et silverlight
    bonjour,
    j'utilise un web service pour me creer des fichier sur le disk (ou sur le serveur) .
    sauf que quand je passe par le silverlight il le repond pas et le webs ervice ne cree pas les fichier .
    mais quand je le test sans le silverlight ca fonctionne .

    voici mon code du silverlight :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
      BinaryWriter bwOutput=null;
     
                Stream aud = _sink.BackingStream;
     
                // nouveau
     
     
                bwOutput.Write("RIFF".ToCharArray());
     
                // Total Length Of Package To Follow
                // Computed as data length plus the header length without the data
                // we have written so far and this data (44 - 4 ("RIFF") - 4 (this data))
                bwOutput.Write((uint)(aud.Length + 36));
     
                bwOutput.Write("WAVE".ToCharArray());
     
                // -- FORMAT chunk
     
                bwOutput.Write("fmt ".ToCharArray());
     
                // Length Of FORMAT Chunk (Binary, always 0x10)
                bwOutput.Write((uint)0x10);
     
                // Always 0x01
                bwOutput.Write((ushort)0x01);
     
                // -- DATA chunk
     
                bwOutput.Write("data".ToCharArray());
     
                // Length Of Data To Follow
                bwOutput.Write((uint)aud.Length);
     
                // Raw PCM data follows...
     
                // Reset position in aud and remember its origin position
                // to restore at the end.
                long originalaudStreamPosition = aud.Position;
                aud.Seek(0, SeekOrigin.Begin);
     
                // Append all data from aud stream into output stream.
                byte[] buffer = new byte[4096];
                int read;       // number of bytes read in one iteration
                while ((read = aud.Read(buffer, 0, 4096)) > 0)
                {
                    bwOutput.Write(buffer, 0, read);
                }
     
                aud.Seek(originalaudStreamPosition, SeekOrigin.Begin);
     
     
                //
     
                ServiceSoapClient sr = new ServiceSoapClient();
     
     
        sr.SavePcmToWavAsync(buffer);
    voici le code de mon web service:

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
     
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
     
    public class Service : System.Web.Services.WebService
    {
        public Service () {
     
        }
     
        [WebMethod ]
     
        public void HelloWorld(string jj)
        {
            FileStream output = new FileStream("d:/kk.wav", FileMode.Create);
        }
     
     
        [WebMethod]
        public void SavePcmToWav(byte[] buffer)
        {
     
     
            // string saveTo = @"d:\kkk";
     
            // // create a write stream
            //   Stream output = new FileStream("d:/kk.wav", FileMode.Create);
            FileStream output = File.Create(@"d:\toto.wav");
     
            //Stream output = File.Create("d:/toto.wav");
     
     
            BinaryWriter bwOutput = new BinaryWriter(output);
     
     
     
            bwOutput.Write(buffer, 0, 4096);
     
     
            output.Close();
     
            //  rawData.Seek(originalRawDataStreamPosition, SeekOrigin.Begin);
     
        }
     
    }

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Est-ce que ton service web et ton application Silverlight se trouve dans le même domaine ? Sinon un fichier ClientAccessPolicy.xml est nécessaire pour autoriser l'application à communiquer avec le service.

  3. #3
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Est-ce que ton service web et ton application Silverlight se trouve dans le même domaine ?

    le meme domaine c'est a dire ????

    ben au debut j'ai testé en mettant mon web service dans un autre projet, puisque ca n'a pas amrché , j'ai remis le tout dans le meme projet !!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Plus simple : est-ce que ton application Silverlight et ton service web sont hébergé au même endroit ?

  5. #5
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    pour mon application silvelight je l'ai pas encore hebergé, c'est toujours dans mon vs 2010 .
    par contre le webs ervice j l'ai complié et publié mais toujours en local dans le meme dossier de projet du silverlight

  6. #6
    Invité
    Invité(e)
    Par défaut
    Est-ce que les URL de l'application Silverlight et de ton service web sont en partie identique ? Vu que t'es sur VS les numéros de port sont-ils identiques ?

    Simple mets nous les URL de ton application Silverlight et de ton service web STP.

  7. #7
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    là c'est le lien du web service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:1444/Web_servicee/Service.asmx




    et là c'est le liens quand je lance mon application silverlight :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file:///d:/visual%20studio%202010/Projects/rec_audio/rec_audio/Bin/Debug/rec_audioTestPage.html

    au fait merci pour ce que tu fais,
    je galere avec ça

  8. #8
    Invité
    Invité(e)
    Par défaut
    C'est ce que je me disais les domaines sont différents. Faudra que tu mettes en place un fichier ClientAccesPolicy à la racine du site qui héberge ton service web donc en l'occurrence.

  9. #9
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    merci , ca va beaucoup m'aidé,
    meme si j'ai pas bien compris comment mettre en place ce fichier, mais je vais cherché;

    en tout cas merci,
    chapo bas

  10. #10
    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
    Tu expliques comment tu vas déployer ton WebService sur le poste de clients ???

    Parce que bon sinon ton fichier wav sera créé sur le ton serveur à chaque fois.

    C'est quoi l'erreur que tu as pour le moment ?

  11. #11
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    actuellement je l'ai pas encore deployé,j'ai le tout en local. "localhost"
    ben au fait je n'ai pas d'erreur.
    vue que avec silverlight on ne peux accedé au disque pour cree un fichier par ex,
    alors j'ai choisi de passé par les web service.
    mon webs ervice cree bien le fichier en local, en le testant seul.
    mais quand j'ai choisi de tester sur silverlight ben le web service ne repond pas et ne cree pas le fichier.


    je vien de suivre ce tuto a la lettre : (surtout la derniere partie)

    http://www.garraud.eu/proFormateur/S...WebService.htm

    mais ca donne toujours rien !

  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
    Utilise fiddler2 pour voir ce que silverlight fait. Peut être que le clientaccesspolicy n'est pas au bon endroit. Fiddler va te permetre de voir les appels http qui sont réalisés.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/08/2011, 09h30
  2. Réponses: 6
    Dernier message: 08/04/2010, 17h19
  3. [VB .Net][Forms] Interaction entre deux forms
    Par plasticgoat dans le forum Windows Forms
    Réponses: 7
    Dernier message: 24/08/2005, 13h14
  4. [Collaboration/Interaction] Peut-on schématiser une interaction entre un bouton de commande et un autre objet ?
    Par manel007 dans le forum Autres Diagrammes
    Réponses: 5
    Dernier message: 21/09/2004, 01h01

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