视图状态 MAC 验证失败。

问题描述 投票:0回答:2

视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群,确保配置指定 相同的validationKey和验证算法。自动生成不能 在集群中使用

堆栈溢出和 asp.net 论坛中也存在同样的问题,但任何解决方法都不能解决我的问题。

当我将数据从一个 asp.net 页面发布到不同网站(托管在 SSL 中)的另一个页面时,出现上述错误。我尝试在两个应用程序中添加相同的机器密钥,并尝试提供如下所示的页面属性

<pages  validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false" >

 <machineKey validationKey="06E158563F2028028595BDF5943CAE28A95CEA4F" decryptionKey="8DB0D34A423D3C714E548AB4BA80040C789F4E01B9AAE6D27E6363E5DA154702" validation="SHA1" decryption="AES" /> 

但我仍然遇到同样的错误。请注意,我使用的是 VS 2013、最新的 ASP.net 版本和在 SSL 中托管的应用程序。

请提供解决方案。

asp.net ssl visual-studio-2013 viewstate machinekey
2个回答
0
投票

尝试放入 Page 指令:

<%@ Page 
EnableViewStateMac="false" EnableEventValidation="false" ViewStateEncryptionMode="Never" 
%>

0
投票

我在迁移到共享托管环境的 .NET Web 应用程序中遇到了这个问题。就我而言,问题在于 ViewState 足够大,以至于超出了分配的内存限制。我的建议:在没有任何控件需要它的母版页和 Web 窗体上禁用 ViewState。我在母版页上禁用了 ViewState,并且 ViewState 的长度从 2800 个字符下降到 620 个字符。请在请求 MachineKey 之前尝试此操作,正如许多回复(在相关线程中)所建议的那样。

© www.soinside.com 2019 - 2024. All rights reserved.