Там несколько причин, это может произойти:
Авто-Произведенные машины Ключей:
Если пулы приложений имеют период ожидания по умолчанию 20 минут, и вы используете автоматически сгенерированные проверки и ключи дешифрования, то каждый раз, когда пул запускается, он генерирует новый набор ключей. Это аннулирует зашифрованное окно просмотра браузера. Вы также обнаружите, что бланки проверки подлинности для постоянных билетов также станут недействительными.
Чтобы преодолеть этот набор этих клавиш с фиксированными значениями в:
`c:\%systemroot%\microsoft.net\framework\v2.0.50727\CONFIG\machine.config`
Вам нужно добавить элемент <machineKey>
конфигурации в разделе <system.web>
. Там очень хорошая статья здесь, которая объясняет, как это сделать:
How To: Configure MachineKey in ASP.NET 2.0
Прокрутка вниз к разделу «Web Farm Deployment Considerations» и Генерировать криптографически случайные ключи.
Если вы используете веб-ферму с балансировкой нагрузки, вам также необходимо установить машинный ключ каждого сервера на точно такое же значение.
Неверное значение формы action
(3.5SP1):
Там также случай (после 3.5SP1), где, если вы установите атрибут вашей формы ASP.NET action
нечто иное, чем страница быть вывешены назад и вы не используете postbacks перекрестных ссылок, тогда вы получите эту ошибку. Но вы видите это сразу:
Validation of viewstate MAC failed after installing .NET 3.5 SP1
Timing/Long Running Страницы:
Там также крайний случай для страниц, которые занимают много времени, чтобы вынести где, если страница частично вынесено и постбэк:
Validation of viewstate MAC failed error
Причина корня Это исключение появляется из-за того, что элементы управления, использующие DataKeyNames , требуют шифрования ViewState. Когда VIEWSTATE шифруются (По умолчанию режима, Авто, для шифрования, если контроль требует, чтобы в противном случае нет), Page добавляет поля как раз перед закрытием в тега.Но это скрытое поле , возможно, не было отображено в браузере с длинными страницами и , если вы сделаете обратную ссылку перед его выполнением, браузер инициирует обратную связь без это поле (в форме post collection). Конечный результат заключается в том, что если это поле , опущено на обратной стороне, страница не знает, что Viewstate зашифрована и вызывает вышеупомянутое исключение. I.E. страница будет полностью загружена , прежде чем вы сделаете обратную передачу.
Рад, что вы получили эту работу, я никогда не думал о тайм-ауте простоя и предполагал, что это была бы разумная ценность. Во всяком случае, я получаю вознаграждение за усилия? :) – Kev
Ха-ха, конечно, спасибо за вашу помощь! – Curt
Хммм вы можете попробовать отредактировать свой ответ, пожалуйста? Он заявляет, что заперт до его редактирования, тогда я могу проголосовать: S – Curt