Possible Duplicate:
Setting ViewStateUserKey gives me a “Validation of viewstate MAC failed” error
I have applied the solutions of the posts on StackOverflow but they did not work out for my problem.
The details of the problem is:
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 i开发者_如何学JAVAn 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.
[HttpException (0x80004005): Unable to validate data.]
System.Web.Configuration.MachineKeySection.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) +10986325
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +295
[ViewStateException: Invalid viewstate.
Client IP: 131.155.68.60
Port: 53999
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16
ViewState: /wEPDwULLTIxNDQxNzQ5ODlkZDYHBedPRvEzZrTTrJvp9yAr5yfa
Referer: http://rms.rextron.eu/login.aspx?ReturnUrl=%2fdefault.aspx
Path: /login.aspx]
[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) +148
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +10959605
System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) +59
System.Web.UI.HiddenFieldPageStatePersister.Load() +10959704
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +11043464
System.Web.UI.Page.LoadAllState() +46
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +11038983
System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +11038522
System.Web.UI.Page.ProcessRequest() +91
System.Web.UI.Page.ProcessRequest(HttpContext context) +240
ASP.login_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\9ec5a6be\294c12de\App_Web_ptjxac-a.1.cs:0
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +599
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171
I already tried to put this in the web.config:
<pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never">
I asked a similar question a while ago. Did you see this post? Another thing that helped me with this error was setting a machineKey
. See this Microsoft Page about the problem and setting a Machine Key.
I started having this problem today.
Long story short - I'd copied some of the form code from a similar page and forgotten to change the form action:
<form id="Form1" action="search.aspx" method="post" runat="server">
</form>
The form on results.aspx should have been:
<form id="Form1" action="results.aspx" method="post" runat="server">
</form>
I would recommend anyone else check this and also any inherits values before delving into config and other settings.
精彩评论