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 :

conflit dans le type Stream


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 conflit dans le type Stream
    bonjour, j'ai cree un web service qui contient une methode avec deux parametre un"string" et un "Stream",
    et quand je l'appél dans mon application , je donne les deux parametre a la methode et j'ai un message d'erreur comme quoi il y a un conflit entre
    "nom_du_webservice.Stream et le System.io.Stream"

    je comprend pas prk il considere nom_du_webservice.Stream comme un type !!
    voici mon code :

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
     
     
     
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
     
    public class Service : System.Web.Services.WebService
    {
        public Service () {
     
            //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus 
            //InitializeComponent(); 
        }
     
       [WebMethod]
     
        public void SavePcmToWav(string name, System.IO.Stream rawData)
            {
     
                FileStream output;
                output = File.Create(@"d:\nouv\"+name+".wav");
                BinaryWriter bwOutput = new BinaryWriter(output);
     
                // Write down the WAV header.
                // Refer to http://technology.niagarac.on.ca/courses/ctec1631/WavFileFormat.html
                // for details on the format.
     
                // Note that we use ToCharArray() when writing fixed strings
                // to force using the char[] overload because
                // Write(string) writes the string prefixed by its length.
     
                // -- RIFF chunk
     
                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)(rawData.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)rawData.Length);
     
                // Raw PCM data follows...
     
                // Reset position in rawData and remember its origin position
                // to restore at the end.
                long originalRawDataStreamPosition = rawData.Position;
                rawData.Seek(0, SeekOrigin.Begin);
     
                // Append all data from rawData stream into output stream.
                byte[] buffer = new byte[4096];
                int read;       // number of bytes read in one iteration
                while ((read = rawData.Read(buffer, 0, 4096)) > 0)
                {
     
                    bwOutput.Write(buffer, 0, read);
     
                }
     
                rawData.Seek(originalRawDataStreamPosition, SeekOrigin.Begin);
     
            }
        }

    là ou j'appél le 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
    .
    .
    .
    .
    ServiceSoapClient save_wave = new ServiceSoapClient();
    
            System.IO.Stream my_stream = _sink.BackingStream;
    
          
    // voila ou il y a l'erreur il souligne en rouge tout ça en bas
    
            save_wave.SavePcmToWavAsync("kkkk", my_stream);

    merci
    Cdt

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Il ne faut pas envoyer l'objet stream (je doute qu'il soit sérialisable) il faut envoyer le contenu sous la forme byte[]

  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
    c'est a dire que je fais le tout dans mon application et j'envoie le byte complet et dans le web service je ne fais que créé le fichier et c'est tout !!!!

    j'espere que j'ai bien compri


    je test et je te repond
    merci

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Ca dépend. Soit tu envoies les données brutes et tu fais la conversion sur le serveur + enregistrement. Soit tu convertis sur le client et tu envoies sur le serveur qui ne fait que l'enregistrement.
    A toi de voir lequel est le mieux.

  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
    bonjour,

    j'ai essaye d'envoyé un BinaryWriter a mon web service pour k'il ajout fichier.
    mais c'est la meme erreur :
    Error 1 'BinaryWriter' is an ambiguous reference between 'System.IO.BinaryWriter' and 'rec_audio.ServiceReference1.BinaryWriter' D:\Visual Studio 2010\Projects\rec_audio\RecorderViewModel.cs 196 13 rec_audio
    parce que le souci c'est que je ne peux cree un fichier avec la premiere methode avec filestream car elle en silverlight, et en silverlight on ne êux ecrie un fichier directement sur le disque.
    c'est pour cela que j'ai chois de passé par les web service, pour la creation de fichier .
    alors que doit envoyé exactement a mon web servide !


    merci
    Cdt

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Pareil, un binary writer ca ne passe pas dans un webservice!
    Il faut que tu écrives tout dans un memorystream puis que tu lises ce memorystream et que tu stockes ca dans un byte[] pour enfin le faire voyager.

Discussions similaires

  1. [Interface]Caster dans un type interface ?
    Par Pill_S dans le forum Langage
    Réponses: 7
    Dernier message: 21/10/2005, 13h26
  2. Insertion dans BDD type ACCESS
    Par NeHuS dans le forum ASP
    Réponses: 2
    Dernier message: 20/04/2005, 10h53
  3. Conflit dans les styles CSS
    Par Nerva dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/03/2005, 22h56
  4. style pour le bouton dans input type file
    Par manaboko dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2005, 14h47
  5. [XML] caractères spéciaux dans un type NMTOKEN
    Par norkius dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 08/09/2004, 14h30

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