lunes, 9 de septiembre de 2013

The maximum message size quota for incoming messages (65536) has been exceeded, solución.

Me lo estoy pasando en grande haciendo una capa de servicio que conecte con un sistema de webservices, y que me tiene que devolver el listado de países del mundo, entre otras cosas.

Para traérmelos todos, llamo a un webservice llamado buscarPais(string cadenaDeBusqueda) y le inserto como búsqueda “*”.

El problema es que al lanzar el test me responde:

Result Message:   
Test method Servicios.Test.ADPComuServiceTests.recuperaLocalidadesTest threw exception:
System.ServiceModel.CommunicationException: The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element.

Y se me queda cara de poker.

Navegando por San Google, encontré la respuesta (cómo no) y que es abrir el fichero app.config del proyecto, en donde están los datos de conexión a la referencia del servicio y añadir los siguientes parámetros al binding:

<binding name="NombreDelServicioBinding" maxReceivedMessageSize="2097152" maxBufferSize="2097152" maxBufferPoolSize="2097152" />

De esta forma aumento el tamaño del mensaje que puedo recibir, con la contrapartida de que dejo una puerta abierta para un ataque externo (cosa que en este caso es más que improbable).

Por último, recuerda de ponerlo en el app.config del proyecto y del proyecto de testing también.

Espero que sea de utilidad