2012-10-22 49 views
0

,当我试图调用OnClick在我的形式,我得到这个错误验证视图状态错误

错误:Failed validation of viewstate MAC. If this application is hosted by a Web Farm or cluster, ensure that configuration specifies the same <machineKey> validationKey and validation algorithm. AutoGenerate can not be used in a cluster.

代码隐藏

<form runat="server" id="form1"> <asp:Button ID="btnImprimeBematech" runat="server" OnClick="btnImprimeBematech_OnClick" Text="Imprime Novo Bematech" /> </form>

我不因为在StackOverflow的其他线程中,有些解决方案是中的操作标记,但是我的表单中没有任何action

我试图把EnableViewStateMac="false" EnableSessionState="False" EnableViewState="false"<%@ Page但仍是同样的错误

+0

您的应用程序是否由Web Farm或集群控制?或者在点击按钮之前是否回收了应用程序池? –

+0

FrédéricHamidi我的申请不是网络农场或集群的主人。 –

回答

0

machineKey值必须在一个webfarm所有机器一样。

链接:http://msdn2.microsoft.com/en-us/library/ms998288.aspx

您的所有网页上设置该属性的不只是一个页面

In web.config 

<pages enableViewStateMac="false"> 

它始终是最好去指定用于在web.config中加密和解密的自定义键。这是因为当您将EnableViewStateMac值设置为false时,会使您的应用程序受到安全威胁。这是因为视图状态的验证在这种情况下不会发生。

<machineKey validationKey="<encryptionkey>" decryptionKey="<decryptionkey>" validation="SHA1" decryption="Auto"/>