Tengo un servicio WCF que devuelve 1000 registros de la base de datos al cliente. Tengo un cliente ASP.NET WCF (he agregado referencia de servicio en el proyecto de aplicación web asp.net para consumir WCF).
Recibo el siguiente mensaje cuando ejecuto la aplicación cliente:
Se ha excedido la cuota máxima de tamaño de mensaje para mensajes entrantes (65536). Para aumentar la cuota, use la propiedad MaxReceivedMessageSize en el elemento de enlace apropiado.
¿Alguna ayuda? ¿Cómo aumentar la cuota de tamaño de mensaje?
Respuestas:
Querrá algo como esto para aumentar las cuotas de tamaño de mensaje, en el archivo App.config o Web.config :
Y use el nombre del enlace en su configuración de punto final, por ejemplo
La justificación de los valores es simple, son lo suficientemente grandes como para acomodar la mayoría de los mensajes. Puede ajustar ese número para satisfacer sus necesidades. El valor predeterminado bajo está básicamente allí para evitar ataques de tipo DOS. Convertirlo en 20000000 permitiría que un ataque distribuido de DOS sea efectivo, el tamaño predeterminado de 64k requeriría una gran cantidad de clientes para dominar la mayoría de los servidores en estos días.
fuente
Si aún recibe este mensaje de error mientras usa el Cliente de prueba WCF, es porque el cliente tiene una configuración MaxBufferSize separada .
Para corregir el problema:
Aparecerá una lista de configuraciones editables, incluido MaxBufferSize.
Nota: Los clientes proxy generados automáticamente también establecen MaxBufferSize en 65536 de forma predeterminada.
fuente
Si está creando sus enlaces WCF dinámicamente, aquí está el código que debe usar:
fuente
El cliente de prueba WCF tiene su propia configuración de cliente.
Ejecute el cliente de prueba y desplácese hasta la parte inferior. Si hace doble clic en el nodo Archivo de configuración, verá la representación XML. Como puedes ver el
maxReceivedMessageSize
es65536
.Para editar esto, haga clic derecho en el nodo del árbol del archivo de configuración y seleccione Editar con
SvcConfigEditor
. Cuando se abra el editor, expanda Enlaces y haga doble clic en el enlace que se generó automáticamente.Puede editar todas las propiedades aquí, incluidas
maxReceivedMessageSize
. Cuando haya terminado, haga clic en Archivo - Guardar .Por último, cuando vuelva a la ventana de WCF Test Client, haga clic en Herramientas - Opciones .
NOTA : Desmarque la configuración Regenerar siempre al iniciar servicios .
fuente
Always regenerate config
opción.Encontre el camino facil
fuente
Resuelvo el problema ... de la siguiente manera
fuente
Resolví mi problema en Bing Maps WPF en mi proyecto usando CalculateRoute (). La solución en mi caso fue configurar maxReceivedMessageSize y maxReceivedMessageSize en el atributo "httpTransport" para la sección "customBinding".
Configuré en el archivo aplicaciones.config (es. MyApp.config) esta configuración:
fuente
fuente
Para HTTP:
Para TCP:
IMPORTANTE:
Si intenta pasar un objeto complejo que tiene muchos objetos conectados (por ejemplo: una estructura de datos de árbol, una lista que tiene muchos objetos ...), la comunicación fallará sin importar cómo haya aumentado las Cuotas. En tales casos, debe aumentar el recuento de objetos que contienen:
fuente
maxItemsInObjectGraph
era la solución (rápida) para mí. Pero cuando aumente esto, debe pensar si la mejor solución es que su aplicación solicite datos en fragmentos, en lugar de un gráfico de objeto enorme que puede agotar los recursos.Para mí, todo lo que tenía que hacer es agregar
maxReceivedMessageSize="2147483647"
al cliente app.config. El servidor se dejó intacto.fuente
Otra cosa importante a considerar desde mi experiencia ...
Recomiendo encarecidamente NO maximizar maxBufferPoolSize, porque los búferes del grupo nunca se liberan hasta que el dominio de la aplicación (es decir, el grupo de aplicaciones) se recicla.
Un período de alto tráfico podría causar que se use mucha memoria y nunca se libere.
Más detalles aquí:
fuente
No olvide que se considerará la aplicación.config del punto de entrada de ejecución, no la del proyecto de biblioteca de clase que administra las llamadas de servicio web si hay una.
Por ejemplo, si obtiene el error mientras ejecuta la prueba de la unidad, debe configurar la configuración adecuada en el proyecto de prueba.
fuente
Recibí este error al usar esta configuración en web.config
establezco configuraciones como esta:
fuente
bindings
elemento de Nate y lo volvió a publicar como parte de su respuesta. Esos2000000
valores son bastante distintos.