当我尝试在表单中调用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中的帖子,一些解决方案是<Form>
标签中的操作,但我的表单中没有action
。
我尝试将EnableViewStateMac="false" EnableSessionState="False" EnableViewState="false"
放入我的<%@ Page
,但仍然是同样的错误
答案 0 :(得分:0)
网络农场中的所有计算机上的machineKey
值必须相同。
链接: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"/>