example ejemplo consumir c# .net winforms wcf service-model

c# - ejemplo - maxReceivedMessageSize y maxBufferSize en app.config



wcf service host (7)

Cómo aumentar los parámetros maxReceivedMessageSize y maxBufferSize en el archivo app.config a 2000000 antes de ejecutar la aplicación.


Abra app.config en el lado del cliente y agregue los atributos maxBufferSize y maxReceivedMessageSize si no está disponible

Original

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

Después de Editar / Actualizar

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


Debe hacer eso en su enlace, pero deberá hacerlo tanto en el Cliente como en el Servidor. Algo como:

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


La respuesta actualmente aceptada es incorrecta. NO es necesario establecer maxBufferSize y maxReceivedMessageSize en el cliente y el enlace del servidor. ¡Depende!

Si su solicitud es demasiado grande (es decir, los parámetros del método de la operación de servicio son intensivos en memoria) establezca las propiedades en el lado del servidor, si la respuesta es demasiado grande (es decir, el valor de retorno del método de la operación del servicio es intensivo en memoria) los valores en el lado del cliente.

Para los diferentes entre maxBufferSize y maxReceivedMessageSize ver la propiedad MaxBufferSize? .


Puedes hacer eso en tu app.config. como eso:

maxReceivedMessageSize="2147483647"

(El valor máximo es Int32.MaxValue )

O en Código:

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

Nota:

Si su servicio está abierto para todo el mundo, piense en la seguridad cuando aumente este valor.


Si está utilizando un enlace personalizado, puede establecer los valores de esta manera:

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


Solución fácil: compruebe si funciona para usted ..

Goto web.config

Encontrar enlace utilizado por el cliente.

cambiar como,

maxBufferSize = "2147483647" maxReceivedMessageSize = "2147483647"

Hecho.


binding name="BindingName" maxReceivedMessageSize="2097152" maxBufferSize="2097152" maxBufferPoolSize="2097152"

del lado del cliente y del lado del servidor