Gaurav K Mishra Ответов: 2

Проверка состояние вида Mac не удалась.


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


Ошибка сервера в приложении'/'.
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.


Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: 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.

Source Error:

[No relevant source lines]


Source File: c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\e529ecf2\18fea36a\App_Web_q6lqkkxv.13.cs    Line: 0

Stack Trace:

[ViewStateException: Invalid viewstate. 
	Client IP: 182.71.144.134
	Port: 2418
	User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
	ViewState: /wEPDwULLTE5NTk1OTc2MjEPZBYCAgMPZBYEAh8PDxYCHgRUZXh0ZWRkAiEPPCsADQEADxYEHgtfIURhdGFCb3VuZGceC18hSXRlbUNvdW50AgNkFgJmD2QWDGYPDxYCHgdWaXNpYmxlaGRkAgEPZBYCZg9kFggCAQ8PFgQfAAUGdiBuYW1lHgdUb29sVGlwBRtodHRwOi8vd3d3LnRpbWVzb2ZpbmRpYS5jb21kZAIDDw8WAh8ABTdBZGRyZXNzLCBBZGRyZXNzLCAxMjMtMTIzLTEyMzQsIFMuIERlbGhpLCBEZWxoaSwgMTEwMDE3ZGQCBQ8PFgIfAAUBd2RkAgcPDxYCHwAFAjEyZGQCAg9kFgJmD2QWCAIBDw8WBB8ABQR0ZXN0HwQFEXd3dy55YWhvb21haWwuY29tZGQCAw8PFgIfAAUsdGVzdCwgdGVzdCwgMTIzLTQ1Ni03ODk1LCB0ZXN0LCB0ZXN0LCAyMDEzMDFkZAIFDw8WAh8ABQtEZXNjcmlwdGlvbmRkAgcPDxYCHwAFAjEzZGQCAw9kFgJmD2QWCAIBDw8WBB8ABQp0ZXN0dmVuZG9yHwQFFWh0dHA6Ly93d3cuc2RpYnNsLmNvbWRkAgMPDxYCHwAFSVRlc3QgQWRkcmVzcywgVGVzdCBBZGRyZXNzIDIsIDU1Ni01NjUtNTY1NSwgVGVzdCBDaXR5LCBUZXN0IFN0YXRlLCAyMDEzMDFkZAIFDw8WAh8ABRBUZXN0IERlc2NyaXB0aW9uZGQCBw8PFgIfAAUCMTlkZAIEDw8WAh8DaGRkAgUPDxYCHwNoZGQYAwUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFEGltZ2J0bkNhY2...]

[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.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +106
   System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState) +14
   System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +237
   System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) +4
   System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) +37
   System.Web.UI.HiddenFieldPageStatePersister.Load() +207
   System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +105
   System.Web.UI.Page.LoadAllState() +43
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6785
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +242
   System.Web.UI.Page.ProcessRequest() +80
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
   System.Web.UI.Page.ProcessRequest(HttpContext context) +49
   ASP.productlist_aspx.ProcessRequest(HttpContext context) in c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\e529ecf2\18fea36a\App_Web_q6lqkkxv.13.cs:0
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75


Version Information: Microsoft .NET Framework Version:2.0.50727.5448; ASP.NET Version:2.0.50727.5456

pataoengineer

Вы запускаете один и тот же двоичный файл веб-сайта на одной и той же машине (но опубликованный в другом приложении)? Раньше я сталкивался с такой проблемой, когда дублировал двоичные файлы webapp в другое приложение для тестирования.

2 Ответов

Рейтинг:
16

taha bahraminezhad Jooneghani

все дело в машинном ключе!
установите машинный ключ в свой конфигурационный файл!
используйте эту ссылку для создания ключа машины:
генератор ключей машины[^]


taha bahraminezhad Jooneghani

viewstate использует машинный ключ для шифрования , потому что вы не устанавливаете его, он использует ключ хост-машины, и эта проблема возникает!
если вы установите его в свой конфигурационный файл, проблема будет решена! это случается и со мной!

Gaurav K Mishra

спасибо за ответ, я пытаюсь это сделать.

taha bahraminezhad Jooneghani

и положите ключ машины под систему.веб-раздел!

Gaurav K Mishra

Является ли генератор ключей машины безопасным? есть ли угроза безопасности от этого?

taha bahraminezhad Jooneghani

да , это абсолютно нормально, я использую это , но помните, что шифрование viewstate совсем не безопасно, вы не должны помещать ценную вещь в состояние просмотра и читать этот совет для большей безопасности с отправкой страницы:
http://www.codeproject.com/Tips/345268/The-Power-Of-ViewState-in-ASP-NET

taha bahraminezhad Jooneghani

и вы не спрашиваете,решена ли ваша проблема?
а если решить, то почему не 5?:)

Gaurav K Mishra

спасибо, что он хорошо работает...

Рейтинг:
1

Mas11

Пожалуйста, добавьте этот код на свою страницу web.config :

<system.web>
    <machinekey validation="SHA1" validationkey="A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1B2C3D4E5">
decryption="Auto" decryptionKey="A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1" />
</machinekey></system.web>


CHill60

Это ничего не добавляет к решению Таха Бахрами год назад