Исправление: «длина строки превышает значение, заданное для свойства maxJsonLength» сообщение об ошибке при доступе к веб-форме ASP.NET 3.5


Симптомы


Рассмотрим следующий сценарий:

  • У вас есть веб-приложение ASP.NET, которое использует Microsoft платформа.NET Framework 3.5.
  • Приложение содержит страницу, которая использует элемент управления UpdatePanel .
  • Доступ к веб-форме ASP.NET, и элемент управления UpdatePanel пытается данные обратного запроса, более 2,5 мегабайт (МБ).
В этом сценарии веб-формы ASP.NET отображается неправильно. Кроме того появляется сообщение об ошибке в веб-обозревателе, похожее на следующее:
Ошибка: Sys.WebForms.PageRequestManagerServerErrorException: ошибка при сериализации или десериализации с помощью JSON JavaScriptSerializer. Длина строки превышает значение, заданное для свойства maxJsonLength.
Примечание. Эта проблема возникает, даже если значение свойства maxJsonLength большое значение в файле Web.config.

Причина


Эта проблема возникает из-за ограничения в файле System.web.extensions.dll. В частности конструктор JavaScriptSerializer устанавливает жесткий предел максимальное значение для свойства maxJsonLength . В некоторых случаях максимальное значение не является достаточно большим. Это вызывает проблемы, описанной в разделе «Проблема».

Решение


Сведения об исправлении

Исправление от корпорации Майкрософт доступно. Тем не менее оно предназначено только для устранения проблемы, указанной в данной статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка.

Чтобы устранить эту проблему, обратитесь в службу поддержки пользователей Майкрософт для получения исправления. Полный список телефонов службы поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-сайт корпорации Майкрософт:Примечание. В особых случаях оплата, предусмотренная за обращение в службу поддержки может быть отменена, если специалист службы технической поддержки Майкрософт определит, что обновление будет решением проблемы. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.

Предварительные условия

Для установки этого исправления требуется платформа.NET Framework 3.5 SP1 на компьютере под управлением одной из следующих операционных систем:
  • Windows XP
  • Windows Server 2003
  • Windows Vista
  • Windows Server 2008

Необходимость перезагрузки

Может потребоваться перезагрузить компьютер после установки исправления, если любой из соответствующих файлов используются при установке исправления. Чтобы избежать перезагрузки компьютера, завершения работы любого веб-сайта ASP.NET перед установкой исправления.

Сведения о замене исправлений


Это исправление не заменяет других исправлений.

Сведения о файлах

Английская версия данного исправления содержит атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, откройте вкладку Часовой пояс элемента Дата и время в панели управления.
Для всех поддерживаемых версий x86 платформа.NET Framework 3.5
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформа
System.web.extensions.dll3.5.30729.45591,277,95224 июня 2010 г.08:47x86
Для всех поддерживаемых версий x64 платформа.NET Framework 3.5
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформа
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201013:25x64
Для всех поддерживаемых IA-64-разрядная платформа.NET Framework 3.5
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформа
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201017:34IA-64

После установки инструкции

После установки исправления добавьте следующий элемент в файл Web.config и затем укажите значение больше максимальной длины сценария.
<appSettings><add key=”aspnet:UpdatePanelMaxScriptLength” value=”
<value>” /></appSettings>

Чтобы обойти эту проблему, используйте команду Gacutil.exe для установки сборки взаимодействия в глобальном кэше сборок.

Статус


Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".

Ссылки


Дополнительные сведения об элементе управления UpdatePanel посетите следующий веб-узел Microsoft Developer Network (MSDN):Дополнительные сведения об элементе jsonSerialization посетите следующий веб-узел MSDN: