superó máxima matriz los longitud leer datos cuota contenido cadena aumentar wcf performance

máxima - En WCF, ¿debería tener un gran valor de MaxBufferPoolSize para mensajes grandes?



se superó la cuota de longitud máxima de la matriz 16384 (4)

5 Mb parece una gran cantidad de datos para transferir a través de un servicio web. Lo primero que debes buscar es enviar menos datos. En segundo lugar, debe establecer el tamaño a sus necesidades.

Para este servicio WCF que he desarrollado, tengo que establecer MaxReceivedMessageSize en 5MB. Mi problema actual es averiguar si es mejor tener un valor MaxBufferPoolSize mayor, como 5 MB, o conservar el valor original de 512 KB.

¿Alguien sabe cuál es la configuración recomendada para este escenario?
En resumen, ¿debo configurar MaxBufferPoolSize = 5242880 (5MB) o MaxBufferPoolSize = 524288 (512KB)?

ACTUALIZACIÓN: para aclaración, el servicio está destinado a insertar un nuevo registro de cliente junto con algunos documentos escaneados. Como resultado, el tamaño del mensaje puede alcanzar hasta 5 MB.

Podríamos intentar separar la carga del documento escaneado utilizando tecnologías alternativas, pero el requisito era tanto el registro del cliente como los documentos escaneados deben estar en la misma transacción, por lo que decidimos seguir este enfoque hasta que descubrimos cómo usar la transacción de WCF. capacidad.


Está perfectamente bien transferir grandes cantidades de datos a un servicio basado en WCF, pero debe buscar en un enlace que admita la transmisión en lugar de transferencias en búfer (BasicHttpBinding o CustomBinding) para que cada instancia de servicio no consuma demasiada memoria.

--larsw


Si intentas transferir archivos, esta parece ser tu única opción. De lo contrario, revisaría por qué se envían grandes cantidades de datos a través del servicio en primer lugar. Si se trata de archivos, tendrá que vivir con ese tamaño grande y las posibles repercusiones. También, de nuevo, si se trata de archivos en los que se está moviendo, podría querer probar un componente FTP o algo en su lugar.

Podría proporcionar más información con un poco de elaboración. Volveré más tarde para ver si has agregado algo a tu pregunta.


Mira este artículo. http://kennyw.com/?p=51

Sugiere establecer MaxBufferPoolSize en cero para mensajes grandes para evitar el almacenamiento en búfer.