UpdatePanel, похоже, борется с огромными данными, как AsynPostBack.jSonSerializer maxLength не помогает
-
07-07-2019 - |
Вопрос
У меня есть приложение ASP.NET 3.5, и я пытаюсь обновить панель обновлений, имеющую вложенный настраиваемый элемент управления.В этом пользовательском элементе управления находится ComponentArt Gird, который в этом обновлении заполняется почти 13 МБ данных (да, я мог бы их разбить...).
У меня есть скрытая кнопка на панели обновления, которую я запускаю с помощью JS со стороны клиента, когда мне нужна панель обновления и сетка.
Когда я вызываю метод Update во время asyncPostback с помощью Updatepanelxyz.Update(), позже в процессе я получаю сообщение asyncPostBackError, говорящее, что JSonSerializer не может обработать такой объем данных.Мне следует увеличить указанное значение.
Действительно.Понял.Но когда я меняю это значение в web.config, оно работает только до 8 МБ, но не более.Есть ли в этом случае ограничение для JSonSerializer.Я установил максимальное значение Int32, которое в 1000 раз превышает значение по умолчанию, которого уже достаточно для 4 МБ сериализованных данных.
Какие-либо предложения?Есть ли способ заставить сериализатор сделать это?Есть ли способ использовать другой сериализатор?
Приветствия, Стив
Решение
Лучше всего изменить свойство ScriptingJsonSerializationSection.MaxJsonLength в разделе web.config.
По умолчанию он равен 102 400 символам, в отличие от ограничения класса JsonSerializer в 2097 152 символа.
Видеть:
Свойство maxJsonLength класса JsonSerializer
и
Свойство максимальной длины раздела конфигурации JsonSerialization
Как я уже упоминал выше, изменение свойства раздела конфигурации, к сожалению, является единственным выходом.
Другие советы
Чувак, 1 Мб данных — это слишком много, нахрена тебе 13?
Я действительно думаю, что вам нужно провести рефакторинг вашего пользовательского интерфейса.Меня не волнует, насколько быстра ваша сеть, это просто безумие!
Я абсолютно согласен, что уровень пользовательского интерфейса и доступа к данным нуждается в рефакторинге, но в краткосрочной перспективе я просто искал простое и быстрое решение, которое поможет моему клиенту до выхода следующего обновления программного обеспечения.