ASP.NET: Не мог проверить данные

Я нашел решение!

После борьбы с ответом, который дал мне @Tgr, я наткнулся на потрясающий JS lib: wtf_wikipedia . Я надеюсь, что Вики решит дать этому человеку медаль! Взять, к примеру, текст 8-й категории так же просто:

doc.sections(8).text()

10
задан wprl 10 August 2009 в 20:07
поделиться

6 ответов

Наиболее вероятная причина этой ошибки состоит в том, когда обратная передача будет остановлена перед всеми загрузками состояния отображения (пользователь поражает кнопки остановки или кнопки "Назад"), состояние отображения не проверит и бросит ошибку.

Другие потенциальные причины:

  • Переработка пула приложений между временем, состояние отображения было сгенерировано и время, когда пользователь отправляет его назад на сервер (вряд ли).
  • Веб-ферма, где machineKeys не синхронизируются (не Ваша проблема).

Обновление: статья Microsoft о проблеме. В дополнение к вышеупомянутому они предлагают две других потенциальных причины:

  • Модификация состояния отображения программным обеспечением брандмауэров/антивируса
  • Регистрация от одной aspx страницы до другого.
18
ответ дан 3 December 2019 в 13:32
поделиться

В.NET 3,5 SP1 свойство RenderAllHiddenFieldsAtTopOfForm было добавлено к конфигурации PagesSection.

Web.config

<configuration>

    <system.web>

        <pages renderAllHiddenFieldsAtTopOfForm="true"></pages>

    </system.web>

</configuration>

Интересно, значение по умолчанию этого верно. Так, в сущности при использовании.NET 3,5 SP1 затем, ViewState автоматически представляется наверху формы (прежде чем остальная часть страницы будет загружена), таким образом устранение ошибки ViewState, которую Вы получаете.

9
ответ дан 3 December 2019 в 13:32
поделиться

"обратная передача останавливается перед всеми загрузками состояния отображения"

У меня была эта точная проблема прежде, и это было причиной.

Первоначально мы отключили свойство ViewStateMac (enableViewStateMac="false" в page директива) для решения его но это не истинное решение проблемы и может угрожать целостности данных. Мы в конечном счете разрешили его отключенным наша кнопка отправки, пока страница полностью не загрузилась, и обрезка размера нашего состояния отображения путем отключения его на некоторых средствах управления.

3
ответ дан 3 December 2019 в 13:32
поделиться

Я испытал проблему с определенными определенными версиями Safari 3. Мое решение состояло в том, чтобы переместиться, ViewState к вершине формы (расширил класс Page и перезаписал Метод рендеринга для pre-3.5 SP1 или.Net 3.5 SP1 и позже делает это по умолчанию), и разделять ViewState к нескольким различным полям вместо одного файла монстра. Посмотрите, что ViewState Разделяет на блоки в ASP.NET 2.0 (maxPageStateFieldLength)

6
ответ дан 3 December 2019 в 13:32
поделиться

Я получил эту ошибку, когда у меня была установка тега form на моей странице без атрибута действия, и затем в коде - позади, я изменил атрибут действия формы на "Action.aspx".

И в JavaScript, я отправил форму (theForm.submit () ;)

Я думаю в своем случае, это была проблема безопасности, и что Вы не можете изменить это после того, как это было уже установлено на странице...?

2
ответ дан 3 December 2019 в 13:32
поделиться

Я нашел корень этой проблемы на своем сайте и наконец-то смог решить ее. Это не прямой ответ на ваш вопрос, но я хотел поделиться этой небольшой информацией.

В прошлом я пробовал все (включая решение, предложенное Jeffaxe, выше), но безрезультатно, и я не хотел устанавливать enableViewStateMac="false" (как Raelshark упоминает выше) на моей странице, потому что это просто скрывает проблему.

Что вызвало проблему в моем случае? Проблема была вызвана использованием модуля Intelligencia.UrlRewriter (версия 2.0 RC 1 build 6) на некоторых страницах моего сайта. Я использовал некоторые SEO-дружественные ссылки, и это вызывало сбой проверки ViewState. Когда я использовал "нормальные" ссылки (вместо SEO-дружественных), проблема исчезла!

Я воспроизвел проблему несколько раз, чтобы убедиться, что это не ложная тревога (я использую ASP.NET 3.5).

Я знаю, что некоторые из вас могут не использовать вышеуказанный модуль и все равно получать эту ошибку, что подразумевает, что причина в чем-то другом. По крайней мере, обмен этим опытом может быть полезен для некоторых.

3
ответ дан 3 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: