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 :

Service WCF, Silverlight et taille des objets


Sujet :

Windows Communication Foundation .NET

  1. #1
    Steven62
    Invité(e)
    Par défaut Service WCF, Silverlight et taille des objets
    Bonjour à tous,

    Je travaille actuellement sur une application Silverlight qui communique avec une BDD Sql Server via un service WCF.

    J'arrive parfaitement à récupérer des données de mes tables et de mes procédures stockées. A noter que j'avais eu un problème qui, après plusieurs recherches, était lié à la taille de mes listes. J'avais souvent une erreur 404 not Found quand mes listes étaient trop volumineuses. Après des recherches, j'ai fais une modif qui a corrigé le problème. Désormais, je peux rapatrier du service WCF à mon application Silverlight de grandes listes d'objets (plus de 40.000 lignes par exemple).

    La modif en question :

    Dans le fichier Web.Config de mon service WCF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <dataContractSerializer maxItemsInObjectGraph="6553600"/>
    Aujourd'hui, j'ai voulu ajouter une fonction dans mon service qui reçoit en paramètre une liste d'objets. J'ai eu une erreur 404 Not Found. Après pleins d'essais, je me suis rendu compte que le problème venait la encore de la taille de ma liste. Pour en être sur, j'ai transmis à la fonction de mon service WCF une liste de 150 Clients et ça passe sans problème. Mais dés que je passe à plus de 200, j'ai un message d'erreur.

    Malheureusement, je ne vois pas ce qu'il faut changer pour augmenter le quota pour les objets que j'envoie au service WCF. Si quelqu'un a déjà eu le problème ou / et sait comment le résoudre, merci de me l'expliquer. J'ai passé ma journée sur ce problème ennuyeux.



    Pour info, j'ai bien une autre solution si je ne parviens pas à envoyer ma liste complète d'objets Client au service WCF.

    Je peux envoyer chaque client un à un pour faire le traitement.

    La fonction de mon service WC exécute une procédure stockée qui compare les données de mon objet avec celles d'une table de ma BDD. Selon les résultats, elle modifie certains champs de mes objets. L'idée évoquée au début de ce post était donc d'envoyer une liste de clients au service, de faire ensuite une boucle qui exécute à chaque fois la procédure stockée et modifie l'objet en cours en conséquence pour enfin renvoyer la liste d'objets à l'application Silverlight.

    Avec le problème que j'ai évoqué, j'ai envisagé une autre solution.

    Faire la boucle sur ma liste d'objets sur l'application Silverlight et appeler à chaque fois la fonction de mon service WCF avec en paramètre l'objet en cours uniquement et qui me renvoi l'objet correctement modifiée. J'ai testé cette méthode qui fonctionne mais je la trouve assez longue (j'ai environ 350 objets je dirais).

    En fait, j'aurais aimé connaitre l'avis de certains sur la meilleure méthode à employer :
    boucle sur l'appli et appels à chaque fois au service
    ou
    appel une seule fois au service en lui envoyant la liste complète, traitement et enfin renvoi de la liste complète.

    Y'a t'il une méthode préférable ou plus conseillée qu'une autre ?

    Merci d'avance pour vos réponses.
    Dernière modification par Steven62 ; 14/08/2009 à 19h06. Motif: Ajout de précision

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Essaie de jouer avec les propriétés maxBufferSize, maxBufferPoolSize et maxReceivedMessageSize de l'élément binding, ainsi qu'éventuellement maxDepth, maxArrayLength, maxBytesPerRead, maxNameTableCharCount et maxStringContentLength de l'élément readerQuotas.

Discussions similaires

  1. Utilitaire pour obtenir la taille des objets Access
    Par =JBO= dans le forum Contribuez
    Réponses: 14
    Dernier message: 19/08/2023, 19h22
  2. [WCF] Limitation dans la taille des objets
    Par dev01 dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 30/08/2012, 08h18
  3. [Débutant] Adapter taille des objets à la fenêtre
    Par roudoudounette dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 29/01/2010, 16h30
  4. taille des objets en java
    Par tarik1099 dans le forum Langage
    Réponses: 2
    Dernier message: 26/05/2007, 20h59
  5. [FLASH 8] Taille des objets et zoom
    Par Yukio dans le forum Flash
    Réponses: 2
    Dernier message: 27/09/2005, 05h36

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