REVISIÓN: mensaje de error "la longitud de la cadena supera el valor establecido en la propiedad maxJsonLength" cuando tiene acceso a un web form de ASP.NET 3.5


Síntomas


Imagine el siguiente escenario:

  • Tiene una aplicación web ASP.NET que utilice el Microsoft.NET Framework 3.5.
  • La aplicación tiene una página que utiliza el control UpdatePanel .
  • Tiene acceso al formulario web ASP.NET y el control UpdatePanel intenta registrar datos que es más de 2,5 megabytes (MB).
En este escenario, el formulario web Forms ASP.NET no se muestra correctamente. Además, recibirá un mensaje de error en el explorador web que se parece al siguiente:
Error: Sys.WebForms.PageRequestManagerServerErrorException: Error durante la serialización o deserialización mediante JavaScriptSerializer JSON. La longitud de la cadena supera el valor establecido en la propiedad maxJsonLength.
Nota: Este problema se produce incluso si establece la propiedad maxJsonLength en un valor grande en el archivo Web.config.

Causa


Este problema se produce debido a una limitación de diseño en el archivo System.web.extensions.dll. Específicamente, el constructor de JavaScriptSerializer establece un límite al valor máximo de la propiedad maxJsonLength . A veces, el valor máximo no es suficientemente grande. Esto hace que el problema que se describe en la sección "Síntomas".

Solución


Información de la revisión

Ahora hay una revisión compatible de Microsoft. Sin embargo, se pretende corregir el problema que describe este artículo. Aplíquela sólo a sistemas que experimenten este problema específico.

Para resolver este problema, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de los servicios de soporte al cliente de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:Nota: En casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

Requisitos previos

Para aplicar este hotfix, debe tener.NET Framework 3.5 SP1 instalado en un equipo que está ejecutando uno de los siguientes sistemas operativos:
  • Windows XP
  • Windows Server 2003
  • Windows Vista
  • Windows Server 2008

Requisito de reinicio

Tendrá que reiniciar el equipo después de aplicar este hotfix si cualquiera de los archivos afectados se utilizan al instalar la revisión. Para evitar reiniciar el equipo, cierre cualquier página Web ASP.NET antes de instalar el hotfix.

Información de reemplazo de revisión


Este hotfix no sustituye a otras revisiones.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria en el elemento de Fecha y hora del Panel de control.
Para todas las versiones compatibles basadas en x86 de.NET Framework 3.5
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201008:47x86
Para todas las versiones compatibles basadas en x64 de.NET Framework 3.5
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201013:25x64
Para todas las versiones compatibles basadas en IA-64 de.NET Framework 3.5
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201017:34IA-64

Instrucciones posteriores a la instalación

Después de aplicar la revisión, agregue el siguiente elemento en el archivo Web.config y, a continuación, especifique un valor mayor para la longitud máxima de la secuencia de comandos.
<appSettings><add key=”aspnet:UpdatePanelMaxScriptLength” value=”
<value>” /></appSettings>

Para evitar este problema, utilice el comando de Gacutil.exe para instalar al ensamblado de interoperabilidad en la caché de ensamblados global.

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Referencias


Para obtener más información sobre el control UpdatePanel, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):Para obtener más información sobre el elemento jsonSerialization, visite el siguiente sitio Web MSDN: