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

VB.NET Discussion :

Comment modifier la propriété MaxReceivedMessageSize ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 125
    Par défaut Comment modifier la propriété MaxReceivedMessageSize ?
    Bonjour,

    J'appel un WebService depuis une application VB.Net. Or un des WS me renvoie un XML de plus d'un million de caractères (ce n'est pas une erreur, j'ai vérifié dans SoapUI).

    Or quand je veux mettre le contenu du résultat dans une variable, j'ai ce message d'erreur :
    L'exception System.ServiceModel.CommunicationException n'a pas été gérée
    Message="Le quota de taille maximale de message pour les messages entrants (65536) a été dépassé. Pour augmenter le quota, utilisez la propriété MaxReceivedMessageSize sur l’élément de la liaison appropriée."
    Ce message est clair dans le sens qu'il m'indique que la limite des 65536 caractères est dépassé (normal, vu qu'il y a plus d'un million de caractères dans le XML résultat), mais pas très clair sur la résolution :

    utilisez la propriété MaxReceivedMessageSize sur l’élément de la liaison appropriée.
    Elle se trouve où, cette liaison appropriée ?

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 125
    Par défaut
    Bon, j'ai un peu avancé, puisque j'ai trouvé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Dim Binding As System.ServiceModel.WSHttpBinding = New System.ServiceModel.WSHttpBinding(System.ServiceModel.SecurityMode.None)
     Binding.MaxReceivedMessageSize = 50000000
    Par contre, ça ne fonctionne toujours pas. Je suppose qu'il faut que je dise à VB d'utiliser ce Binding pour les connexions, mais comment faire ?

    Mon code actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            Dim Binding As System.ServiceModel.WSHttpBinding = New System.ServiceModel.WSHttpBinding(System.ServiceModel.SecurityMode.None)
            Binding.MaxReceivedMessageSize = 50000000
     
            Dim AAA_SC As New SR_toto.AaaExportServiceClient
            Dim ID_Requis(0) As Long
            ID_Requis(0) = 54
     
            ' === Liste des appels ===
            Dim cc() As SR_toto.appelSummaryWS
            cc = AAA_SC.getAppels(ID_Requis)
    C'est ce WS (getAppels) qui retourne un très gros volume de données.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    Bonjour,

    Il me semble que tu peux trouver cette propriété dans le fichier de config (App.config si je me souviens bien) ou tu a defini tes endpoints.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 125
    Par défaut
    Oui ! C'est effectivement là. Merci beaucoup.

    J'ai dû modifier les 2 valeurs MaxReceivedMessageSize et MaxBufferSize qui étaient par défaut à 65356 pour les passer à 20.000.000. Les 2 valeurs doivent être identiques.

    Encore merci pour ton aide.

    PS : et donc, les 2 lignes suivantes de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Binding As System.ServiceModel.WSHttpBinding = New System.ServiceModel.WSHttpBinding(System.ServiceModel.SecurityMode.None)
     Binding.MaxReceivedMessageSize = 50000000
    étaient complètement inutiles. A virer, donc.

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

Discussions similaires

  1. comment modifier dans propriété
    Par vangelia dans le forum Windows XP
    Réponses: 1
    Dernier message: 30/12/2006, 13h19
  2. Réponses: 2
    Dernier message: 13/12/2006, 17h09
  3. Comment modifier les propriétés d'un fichier NTFS
    Par ChristopheG dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/12/2006, 18h40
  4. Réponses: 1
    Dernier message: 22/11/2006, 17h44

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