web-dev-qa-db-fra.com

maxReceivedMessageSize et maxBufferSize dans app.config

Comment augmenter les paramètres maxReceivedMessageSize et maxBufferSize dans le fichier app.config à 2000000 avant d'exécuter l'application.

39
Vishal I Patil

Vous devez le faire sur votre liaison, mais vous devez le faire sur les deux Client et Serveur. Quelque chose comme:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding maxBufferSize="64000000" maxReceivedMessageSize="64000000" />
        </basicHttpBinding>
    </bindings>
</system.serviceModel>
61
mattytommo

Vous pouvez le faire dans votre app.config. comme ça:

maxReceivedMessageSize="2147483647" 

(La valeur maximale est Int32.MaxValue)

Ou en code:

WSHttpBinding binding = new WSHttpBinding();
binding.Name = "MyBinding";
binding.MaxReceivedMessageSize = Int32.MaxValue;

Note:

Si votre service est ouvert au monde entier, pensez à la sécurité lorsque vous augmentez cette valeur.

13
Jacob

La réponse actuellement acceptée est incorrecte. Il est [~ # ~] et non [~ # ~] requis pour définir maxBufferSize et maxReceivedMessageSize sur le client et la liaison du serveur. Ça dépend!

Si votre demande est trop volumineuse (les paramètres de méthode de l'opération de service nécessitent beaucoup de mémoire), définissez les propriétés côté serveur, si la réponse est trop volumineuse (la valeur de retour de la méthode de l'opération de service nécessite beaucoup de mémoire), définissez les valeurs côté client.

Pour la différence entre maxBufferSize et maxReceivedMessageSize, voir propriété MaxBufferSize? .

12
D.R.

Si vous utilisez une liaison personnalisée, vous pouvez définir les valeurs comme suit:

<customBinding>
    <binding name="x">
        <httpsTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
    </binding>
</customBinding>
1
rox

Solution facile: vérifiez si cela fonctionne pour vous.

Aller à web.config

Trouver la liaison utilisée par le client.

changer comme,

maxBufferSize = "2147483647" maxReceivedMessageSize = "2147483647"

Terminé.

0
Aki

Ouvrez app.config côté client et ajoutez les attributs maxBufferSize et maxReceivedMessageSize s'il n'est pas disponible.

Original

  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="Service1Soap"/>
      </basicHttpBinding>
    </bindings>

après édition/mise à jour

  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="Service1Soap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>
      </basicHttpBinding>
    </bindings>
0
binding name="BindingName" 
maxReceivedMessageSize="2097152" 
maxBufferSize="2097152" 
maxBufferPoolSize="2097152" 

côté client et côté serveur

0
Sunita Badsra