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

Windows Communication Foundation .NET Discussion :

Envoyer des fichiers de grande taille


Sujet :

Windows Communication Foundation .NET

  1. #1
    Membre du Club Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Points : 60
    Points
    60
    Par défaut Envoyer des fichiers de grande taille
    Bonjour,

    J'essaye de réaliser deux applications qui communiquent entre elles avec des images, le problème que j'ai rencontré, il y'a des images qui passent et d'autres non!

    Apres avoir fait plusieurs testes ben j'ai constaté que les images ayant une taille qui dépasse 8Ko ça ne passe pas ! comment faire pour permettre le transfert des images de grande taille (2Mo maximum) ?

    voici mon fichier app.config
    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
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <services>
          <service name="OperationsServeur.OperationsServeur">
            <endpoint
                address="net.tcp://localhost:12348/OperationsServeur"
                binding="netTcpBinding"
                contract="InterfaceProg.IOperationsServeur" />
          </service>
        </services>
     
        <bindings>
          <netTcpBinding>
            <binding name="nettcp" maxReceivedMessageSize="20000000000" maxBufferSize="2000000000">
              <readerQuotas maxArrayLength="2000000000" maxStringContentLength="2000000000"/>
              <security mode="None" />
            </binding>
          </netTcpBinding>
        </bindings>
     
      </system.serviceModel>
    </configuration>

  2. #2
    Membre émérite
    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 : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Bonjour,

    Je ne m'y connais pas assez en configuration WCF mais en revanche tu pourrais peut être envoyer tes informations pas paquets via trois méthodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // On notifie au serveur le début de l'envoi qui nous renvoi un jeton
    Guid token = OpenSend(long lengthOfData);
     
    // à renvoyer par modulo de tranches de 8ko de ton fichiers d'origine
    // fichier de 80 Ko = 10 appels à SendData
    SendData(Guid token, byte[] datas);
     
    // l'envoi est terminé
    CloseSend(Guid token);
    L'intérêt c'est que tu peux envoyer des données de n'importe quelle taille.
    (Tu peux fixer une taille maximum lors du traitement de la méthode OpenSend).

    En espérant que cela puisse t'aider.

  3. #3
    Membre émérite
    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 : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    A mon avis ta configuration est un peu défaillante car tu as mis partout (si je ne me trompe pas) 2GO et non 2 mo alors forcément c'est peu gros
    .

    Ne pouvant allouer autant de mémoire, il doit donc prendre la taille par défaut de MaxStringContentLength c'est à dire 8Ko.

    Je te renvoie vers cette article qui devrait aider à y voir plus clair :

    http://geekswithblogs.net/niemguy/ar...ssagesize.aspx

  4. #4
    Membre du Club Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Points : 60
    Points
    60
    Par défaut
    merci pour tes réponses Samoteph,

    ben 2Go c'est pour dire le maximum cava être ça, sinon je n'arrive toujours pas a faire passer ma petite image de 1.5Mo

  5. #5
    Membre émérite
    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 : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    et 20 GO sur maxReceivedMessageSize ? En mémoire ça fait beaucoup.
    Tu peux reposter ta nouvelle config modifiée ?

  6. #6
    Membre du Club Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Points : 60
    Points
    60
    Par défaut
    non c'est juste pour accepter un grande tailler, je ne fais pas de réservation !!!

    ma config, voila j'ai donné le nombre maximum qu'un "int" peut prendre :
    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
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <services>
          <service name="OperationsServeur.OperationsServeur">
            <endpoint address="net.tcp://localhost:12348/OperationsServeur"
              binding="netTcpBinding" bindingConfiguration="net.tcp" contract="InterfaceProg.IOperationsServeur" />
          </service>
        </services>
     
        <bindings>
          <netTcpBinding>
            <binding name="net.tcp"  maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
              <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />
            </binding>
          </netTcpBinding>
        </bindings>
     
      </system.serviceModel>
    </configuration>

  7. #7
    Membre émérite
    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 : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Comme je te l'avais dit, je ne suis pas une star en config WCF
    Je vais regarder ça d'un peu plus près ce we plutot que de te raconter des bêtises.

  8. #8
    Membre du Club Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Points : 60
    Points
    60
    Par défaut
    merci c'est très gentil

  9. #9
    Membre du Club Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Points : 60
    Points
    60
    Par défaut
    salut,
    ben normalement c'est bon, mais en utilisant le protocole http et l'encodage Mtom.

    Pour TCP j'ai vu quelque part il faut utiliser la diffusion continue. Je n'ai pas utilisé cette méthode car je ne peux satisfaire ses spécifications. voila, cependant, je voudrais savoir comment héberger mes services sur Internet et quelle adresse il faut donner a mes clients pour qu'ils puissent les utiliser.

    Merci a+

  10. #10
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Tu les héberges sur un IIS, comme pour une appli ASP.NET. Pour l'adresse, c'est comme pour un site web, il te faut l'adresse de ton serveur (un nom de domain si tu en as un).

    Plus d'infos ici: http://msdn.microsoft.com/fr-fr/library/ms733766.aspx
    http://msdn.microsoft.com/fr-fr/library/ms734710.aspx

Discussions similaires

  1. [MySQL] Ajout des fichiers d'une taille assez grande
    Par mery gi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/05/2014, 04h31
  2. Upload des fichiers de grandes tailles
    Par zdig10 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 13/07/2010, 14h11
  3. envoyer un fichier de grande taille
    Par ralf91 dans le forum C#
    Réponses: 5
    Dernier message: 14/03/2010, 14h21
  4. Envoyer des fichiers de manière répétée
    Par Micheal1221 dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/07/2006, 10h05
  5. Réponses: 6
    Dernier message: 19/10/2004, 13h46

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