2010-12-08 3 views
0

я получаю каждые пару дней следующие исключения:ViewState исключения

System.Web.HttpException (0x80004005): Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. ---> System.Web.UI.ViewStateException: Invalid viewstate. 

Дело в том, что у меня есть машина набор ключей, и я также использовать только один сервер (т.е. не кластера). Так почему же это исключение происходит? Единственное, о чем я могу думать, это то, что я продолжаю реселлировать сервер IIS, но я не могу понять, почему это проблема. Вы, ребята, видите это исключение на регулярной основе?

Для справки, следующий существует под моим «system.web»:

<machineKey validationKey="Blah1" decryptionKey="Blah2" validation="SHA1" decryption="AES" /> 
+0

Много информации, если вы хотите его копать: http://stackoverflow.com/search?q=Validation+of+viewstate+MAC+failed (я не уверен, что настоящий ответ.: /) – Greg 2010-12-08 16:24:39

ответ

1

разработать немного на точку Брайана, причина страницы, которые являются «очень большой» возникают проблемы в том, что эти страницы иногда сделанный так медленно, что вы нажимаете кнопку «отправить» до того, как ViewState закончил загрузку, что приводит к ее повреждению и создает ошибку.

Единственные решения этого:

  1. отключить ViewState полностью

  2. использовать скрипт только позволит представить после полной загрузки страницы

  3. убедитесь ViewState как ближайше в верхней части страницы (что, по-моему, плохо для SEO, если ваш сайт является общедоступным).

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

Смежные вопросы