Что означает исключение «Невозможно проверить данные» в System.Web.Configuration.MachineKeySection.GetDecodedData - PullRequest
8 голосов
/ 29 апреля 2009

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

Global.Application_Error Ошибка: во время запроса возникла исключительная ситуация: http: //....blah.aspx Невозможно проверить данные. в System.Web.Configuration.MachineKeySection.GetDecodedData (Byte [] buf, Байтовый модификатор [], начало Int32, длина Int32, Int32 и dataLength) в System.Web.UI.ObjectStateFormatter.Deserialize (String inputString) HttpApplication.RaiseOnError => EventHandler.Invoke => Global.Application_Error

Это ловится в моем global.asax. Я искал вокруг, но не могу найти причину. Это исключение бросается в чрезвычайно простые и маленькие веб-формы. Сайт не размещен на веб-ферме.

2 страницы, похоже, периодически вызывают эту ошибку, и одна из них сохраняет bool в ViewState, но она не изменяется, кроме этого.

Кто-нибудь сталкивался с этим раньше?

Ответы [ 5 ]

11 голосов
/ 29 апреля 2009

http://dotnetcoderoom.wordpress.com/2008/11/07/unable-to-validate-data-aspnet-error/

Причина: Основной причиной этого является различие ключа при шифровании и дешифровании данных состояния просмотра. Предположим, что asp.net визуализировал страницу с ключом 1 и сохранил состояние страницы в состоянии просмотра, в то время как ключ asp.net изменяется на ключ 2, теперь, когда на странице будет происходить какое-либо событие на стороне сервера, состояние представления будет расшифровано, и эта ошибка возникнет как старое состояние просмотра теперь недопустимо из-за другого ключа шифрования.

Это может произойти, когда вы открываете страницу на долгое время и после этого делаете какие-то события.

Решение Исправьте ключ в файле web.config, чтобы для шифрования и дешифрования данных состояния просмотра использовался только один ключ.

Для получения дополнительной информации посетите:

http://www.experts -exchange.com / Программирование / Programming_Languages ​​/ Dot_Net / ASP_DOT_NET / Q_21321364.html

http://support.microsoft.com/default.aspx?scid=kb;en-us;Q312906

8 голосов
/ 19 июля 2011

Мне не удалось проверить данные System.Web.Configuration.MachineKeySection.EncryptOrDecryptData "в моем веб-приложении asp.net. Я очистил свои куки, и исключение прекратилось.

4 голосов
/ 29 апреля 2009

Попробуйте добавить ключ машины в ваш файл web.config, чтобы посмотреть, исправит ли это ошибку

http://aspnetresources.com/tools/keycreator.aspx

0 голосов
/ 11 ноября 2015

В моем случае у меня было два веб-приложения (одно было очень старое, а другое только что созданное), и, несмотря на то, что билеты с одинаковыми настройками машинных ключей, сгенерированные в одном приложении, не могли быть использованы в другом. Это было исправлено добавлением compatibilityMode="Framework20SP2" в качестве аргумента для узла machineKey в web.config в более новом приложении.

0 голосов
/ 14 января 2014

была такая же ошибка. Machinekey и decryptionKey были одинаковыми во всех web.config, но некоторые web.config имели

    <add key="aspnet:UseLegacyEncryption" value="true" />
    <add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" />

и других нет. Удалил этот ключ из всех web.config. Я не думаю, что решение заключается в удалении ключа, а в том, чтобы быть одинаковым во всех web.config

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...