Pregunta

Tengo una aplicación ASP.NET 3.5 e intento actualizar un Panel de actualización que tiene un control personalizado anidado. En ese control personalizado hay un ComponentArt Gird, que se llena con casi 13 MB de datos (sí, podría fragmentar eso ...) en esta actualización.

Tengo un botón oculto en el Panel de actualización, que activé con JS desde el lado del cliente, cuando necesito el UpdatePanel y la cuadrícula.

Cuando llamo al método Update durante el asyncPostback con Updatepanelxyz.Update (), obtengo más adelante en el proceso un asyncPostBackError que dice que JSonSerializer no puede manejar esta cantidad de datos. Debería aumentar el valor especificado.

De hecho. Entendido. Pero cuando cambio este valor en web.config, solo funciona hasta alrededor de 8 MB, pero no más. ¿Hay un límite para el JSonSerializer en ese caso? Establecí el valor en el valor máximo de Int32, que es una especie de 1000x del valor predeterminado, que ya es suficiente para 4 MB de datos serializados.

¿Alguna sugerencia? ¿Alguna forma de forzar al serializador para que eso suceda? ¿Alguna forma de usar otro serializador?

Saludos, Steve

¿Fue útil?

Solución

Su mejor opción es cambiar la propiedad ScriptingJsonSerializationSection.MaxJsonLength en su sección web.config.

Su valor predeterminado es 102400 caracteres, en contraste con el límite de la clase JsonSerializer de 2097152 caracteres.

Ver:

Clase JsonSerializer propiedad maxJsonLength

y

Propiedad de longitud máxima de la sección de configuración de JsonSerialization

Como mencioné anteriormente, desafortunadamente, cambiar la propiedad de la sección de configuración es la única forma de hacerlo.

Otros consejos

Amigo, 1 mb de datos es demasiado, ¿por qué necesitas 13?

Realmente creo que necesitas refactorizar tu interfaz de usuario. No me importa lo rápido que sea tu red, ¡eso es una locura!

Estoy totalmente de acuerdo en que la capa de UI y DataAccess necesita un refactorizador, pero a corto plazo solo estaba buscando una solución simple y rápida para ayudar a mi cliente hasta que salga la próxima actualización del software.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top