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 :

Problème de XmlDictionaryReaderQuotas


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Par défaut Problème de XmlDictionaryReaderQuotas
    Bonjour j'ai un problème de sérialisation XML de mon datacontract, quand j'essaie de transmettre un objet de type
    IndexationContract.IndexationData

    Code C# : 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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    using System;
    using System.Collections.Generic;
    using System.Runtime.Serialization;
    namespace IndexationContract
    {
    [DataContract]
    public class IndexationData 
    {
    /// <summary>
    /// Titre du document
    /// </summary>
    [DataMember]
    public string Title { get; set; }
    /// <summary>
    /// Miniature du fichier
    /// </summary>
    [DataMember]
    public string Thumbnail { get; set; }
    /// <summary>
    /// Contenu du document
    /// </summary>
    [DataMember]
    public string Text { get; set; }
    /// <summary>
    /// Description du document
    /// </summary>
    [DataMember]
    public string Description { get; set; }
    /// <summary>
    /// Taille du document
    /// </summary>
    [DataMember]
    public float Size { get; set; }
    /// <summary>
    /// Url/Path du document
    /// </summary>
    [DataMember]
    public string Path { get; set; }
    /// <summary>
    /// Langue du document
    /// </summary>
    [DataMember]
    public string Language { get; set; }
    /// <summary>
    /// Date de la derniŠre modification du document
    /// </summary>
    [DataMember]
    public DateTime LastModified { get; set; }
    /// <summary>
    /// Date de cr‚ation du document
    /// Utiliser que pour les indexations de documents
    /// ne provenant pas du net
    /// </summary>
    [DataMember]
    public DateTime CreationDate { get; set; }
    /// <summary>
    /// Date du dernier accŠs au document
    /// </summary>
    [DataMember]
    public DateTime LastAccess { get; set; }
    /// <summary>
    /// Type mime du document
    /// </summary>
    [DataMember]
    public string ContentType { get; set; }
    /// <summary>
    /// D‚finit si le document provient d'un autre emplacement que le web
    /// false/null => viens du web
    /// true => autre
    /// </summary>
    [DataMember]
    public bool IsDesktop { get; set; }
    /// <summary>
    /// Dictionnaire de m‚ta donn‚es, auteur etc...
    /// object[] { string, int }
    /// 1 : token
    /// 2 : notoken
    /// </summary>
    [DataMember]
    public Dictionary<string, object[]> MetaDatas = new Dictionary<string, object[]>();
    /// <summary>
    /// Action to do
    /// </summary>
    /// <remarks>
    /// 1  Index
    /// 2  Update
    /// 3  Delete
    /// </remarks>
    [DataMember]
    public int Action { get; set; }
    /// <summary>
    /// Old document Path
    /// </summary>
    [DataMember]
    public string OldPath { get; set; }
    /// <summary>
    /// Mots clefs
    /// </summary>
    [DataMember]
    public string KeyWords { get; set; }
    /// <summary>
    /// Liste de liens avec leur "ancres"
    /// </summary>
    [DataMember]
    public Dictionary<string, string> LinksAndAnchor = new Dictionary<string, string>();
    /// <summary>
    /// Flux Rss contenus dans le document
    /// </summary>
    [DataMember]
    public List<string> RssFeeds = new List<string>();
    /// <summary>
    /// Laps de temps avant de revenir indexer le document
    /// </summary>
    [DataMember]
    public string RevisitAfter { get; set; }
    }
    }


    L'exception qui est levé au niveau de mon client est :

    System.ServiceModel.FaultException: Le module de formatage a généré une exception en tentant de désérialiser le message :
    Une erreur s’est produite en tentant de désérialiser le paramètre http://tempuri.org/:data. Le message InnerException était
    « Une erreur s’est produite lors de la désérialisation de l’objet de type IndexationContract.IndexationData. Dépassement du
    quota maximal pour la longueur du contenu de chaîne (8192) lors de la lecture de données XML. Ce quota peut être augmenté
    en modifiant la propriété MaxStringContentLength sur l’objet XmlDictionaryReaderQuotas utilisé pendant la création du lecteur XML. ».
    Pour plus d’informations, voir InnerException.
    Server stack trace:
    à System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
    à 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)
    J'ai donc modifié mon App.config au niveau de mon application cliente
    Code XML : 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
     
     
    <configuration>
    <system.serviceModel>
    <client>
    <endpoint name="Tcpclient" contract="IRemoteOperations.IRemoteIndexation" binding="netTcpBinding"
    address="net.tcp://192.168.1.3:1304" />
    </client>
    <bindings>
    <netTcpBinding>
    <binding name="Tcpclient" receiveTimeout="00:00:40"
    sendTimeout="00:00:3">
    <readerQuotas maxStringContentLength="819200" maxDepth="600" maxArrayLength="819200" maxBytesPerRead="819200"/>
    </binding>
    </netTcpBinding>
    </bindings>
    </system.serviceModel>
    </configuration>

    Au niveau de mon serveur j'ai fais cela :

    Code XML : 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
     
    <system.serviceModel>
    <services>
    <service name="QueryServer.Tcpservice">
    <endpoint contract="IRemoteOperations.IRemoteIndexation" binding="netTcpBinding" address="net.tcp://192.168.1.3:1304" />
    </service>
    </services>
    <bindings>
    <netTcpBinding>
    <binding name="QueryServer.Tcpservice" receiveTimeout="00:00:40"
    sendTimeout="00:00:3" maxConnections="2000">
    <readerQuotas maxStringContentLength="819200" maxDepth="600" maxArrayLength="819200" maxBytesPerRead="819200"/>
    </binding>
    </netTcpBinding>
    </bindings>
    </system.serviceModel>


    Je ne trouve pas ce qui cloche !!

    Merci de votre aide

  2. #2
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    c'est quoi tes objets metadata ?

    parce que y a pas de magie dans WCF il peux pas deviner ce que vont être les "object"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Salut teddyalbina,

    Je pense que l'erreur vient de ton fichier de configuration. Tu crées un endpoint et une configuration. Malheureusement, tu oublies de spécifier ton endpoint doit te tenir compte de ta configuration.

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <endpoint name="Tcpclient" contract="IRemoteOperations.IRemoteIndexation" binding="netTcpBinding"
    address="net.tcp://192.168.1.3:1304" 
    bindingConfiguration="Tcpclient"/>
    Bien à toi,

    Kokapik

  4. #4
    Membre très actif
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Par défaut
    Merci kokapik tout fonctionne niquel maintenant .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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