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 :

[WCF] Limitation dans la taille des objets


Sujet :

Windows Communication Foundation .NET

  1. #1
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut [WCF] Limitation dans la taille des objets
    Bonjour à tous.

    Je viens de tomber sur une étrange exception avec WCF.

    J'ai une application qui transporte un dataset ( hou pas bien ) d'un serveur à un client. Jusque la ça marche très bien, pas de problème. Le problème vient quand le client ajoute trop de données au dataset. En effet j'ai actuellement 180 lignes * 3 colonnes et d'autre petites tables. Bref rien de bien gros.

    Or l'ajout d'un ensemble de lignes supplémentaires me fait planter le client aec cette magnifique exception que je me fait une joie de partager avec vous :
    Citation Envoyé par Le framwork qui m'en veut
    System.ServiceModel.CommunicationException was unhandled
    Message="Le quota de taille maximale de message pour les messages entrants a été dépassé pour le canal distant. Pour plus d’informations, consultez les journaux du serveur."
    Source="mscorlib"
    StackTrace:
    Server stack trace:
    à System.ServiceModel.Channels.ClientDuplexConnectionReader.DecodeMessage(Byte[] buffer, Int32& offset, Int32& size, Boolean& isAtEOF, TimeSpan timeout)
    à System.ServiceModel.Channels.SessionConnectionReader.DecodeMessage(TimeSpan timeout)
    à System.ServiceModel.Channels.SessionConnectionReader.Receive(TimeSpan timeout)
    à System.ServiceModel.Channels.SynchronizedMessageSource.Receive(TimeSpan timeout)
    à System.ServiceModel.Channels.FramingDuplexSessionChannel.Receive(TimeSpan timeout)
    à System.ServiceModel.Channels.FramingDuplexSessionChannel.TryReceive(TimeSpan timeout, Message& message)
    à System.ServiceModel.Dispatcher.DuplexChannelBinder.Request(Message message, TimeSpan timeout)
    à System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
    à System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
    à System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
    à System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
    Exception rethrown at [0]:
    à System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
    à System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    à AIDServiceLibrary.IAIDService.UpdateServerData(DataSet dataSet)
    à ActiveIngredientDatabase.Remote.RemoteConnection.SaveDatas(DataSet datas) dans C:\Users\vincent.laine\Documents\Visual Studio 2005\Projects\BdMolecules\trunk\ActiveIngredientDatabase\ActiveIngredientDatabase\Remote\RemoteConnection.cs:ligne 89
    à ActiveIngredientDatabase.Remote.ThreadedConnectionManager.ConnectionManager.SaveData(Object datas) dans C:\Users\vincent.laine\Documents\Visual Studio 2005\Projects\BdMolecules\trunk\ActiveIngredientDatabase\ActiveIngredientDatabase\Remote\ThreadedConnectionManager.cs:ligne 342
    à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    à System.Threading.ThreadHelper.ThreadStart(Object obj)
    Et j'ai absolument rien dans les logs serveurs qui d'ailleurs continue a fonctionner sans problème ...

    Bref j'ai regardé partout et je vois pas comment augmenter la limite de taille pour les objets ... J'espère que j'ai laissé passer quelque chose

    Si vous avez des idées, des suggestions ou autres ... elles sont les bienvenues

    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut même probleme
    salut j'ai le même problème que tu as eu donc j'espère que tu as trouver une solution et si oui peux tu me la donnée
    merci

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Y en a qui déterre des sujet vieux de plus 5 ans, heureusement que le système de notification fonctionne toujours ^^'

    Mais bon, tu as eu raison parce que j'ai effectivement la solution (validée .NET 3.5 et >)

    Dans le fichier de configuration au niveau de la configuration du binding il faut modifier les attributs maxBufferSize et maxReceivedMessageSize qui doivent avoir la même valeur (la valeur par défaut est 65536) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <basicHttpBinding>
            <binding name="BasicHttpBinding_IMyService" 
              maxBufferSize="6553600" maxReceivedMessageSize="6553600">
              <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                maxBytesPerRead="4096" maxNameTableCharCount="16384" />
            </binding>
          </basicHttpBinding>
    L'autre paramètre sur lequel tu peux être amené à jouer le readerQuota, particulièrement si le graph d'objets est très profond (attribut maxDepth)
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

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. Service WCF, Silverlight et taille des objets
    Par Steven62 dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 18/08/2009, 10h57
  3. taille des objets en java
    Par tarik1099 dans le forum Langage
    Réponses: 2
    Dernier message: 26/05/2007, 20h59
  4. Ma class n'apparait pas dans la liste des objets de mon programme.
    Par parp1 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 25/04/2007, 15h20
  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