Asp.Net webforms Viewstate验证获取失败

Asp.Net webforms Viewstate验证获取失败,asp.net,viewstate,state-management,Asp.net,Viewstate,State Management,我有一个网站托管在共享服务器上,运行在.Net版本:4.0.30319.34280上 我最初得到以下错误 viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定了相同的validationKey和验证算法。无法在群集中使用自动生成 为了修复此问题,我在我的web.config中添加了一个部分,方法是执行以下步骤: 现在我得到了以下错误 无法验证数据 堆栈跟踪: [HttpException (0x80004005): Unable to validate data

我有一个网站托管在共享服务器上,运行在.Net版本:4.0.30319.34280上

我最初得到以下错误

viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定了相同的validationKey和验证算法。无法在群集中使用自动生成

为了修复此问题,我在我的web.config中添加了一个部分,方法是执行以下步骤:

现在我得到了以下错误

无法验证数据

堆栈跟踪:

[HttpException (0x80004005): Unable to validate data.]
   System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Boolean useValidationSymAlgo, Boolean useLegacyMode, IVType ivType, Boolean signData) +1072
   System.Web.UI.Page.EncryptString(String s, Purpose purpose) +150
   System.Web.Handlers.AssemblyResourceLoader.FormatWebResourceUrl(String assemblyName, String resourceName, Int64 assemblyDate, Boolean htmlEncoded) +52
   System.Web.Handlers.AssemblyResourceLoader.GetWebResourceUrlInternal(Assembly assembly, String resourceName, Boolean htmlEncoded, Boolean forSubstitution, IScriptManager scriptManager, Boolean enableCdn) +662
   System.Web.Handlers.AssemblyResourceLoader.GetWebResourceUrl(Type type, String resourceName, Boolean htmlEncoded, IScriptManager scriptManager, Boolean enableCdn) +188
   System.Web.UI.ClientScriptManager.GetWebResourceUrl(Page owner, Type type, String resourceName, Boolean htmlEncoded, IScriptManager scriptManager, Boolean enableCdn) +99
   System.Web.UI.ClientScriptManager.RegisterClientScriptResource(Type type, String resourceName) +96
   System.Web.UI.WebControls.BaseValidator.RegisterValidatorCommonScript() +212
   System.Web.UI.WebControls.BaseValidator.OnPreRender(EventArgs e) +85
   System.Web.UI.Control.PreRenderRecursiveInternal() +88
   System.Web.UI.Control.PreRenderRecursiveInternal() +160
   System.Web.UI.Control.PreRenderRecursiveInternal() +160
   System.Web.UI.Control.PreRenderRecursiveInternal() +160
   System.Web.UI.Control.PreRenderRecursiveInternal() +160
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +883

如果您有任何帮助,我们将不胜感激。

可能是IIS回收了您的应用程序,因此您可以获得会话/视图状态的新密钥。为了缓解这种情况,请在web.config中添加一个机器静态密钥

<machineKey
validationKey="56AB7132992003EE87F74AE4D9675D65EED8018D3528C0B8874905B51940DEAF6B85F1D922D19AB8F69781B2326A2F978A064708822FD8C54ED74CADF8592E17"
decryptionKey="A69D80B92A16DFE1698DFE86D4CED630FA56D7C1661C8D05744449889B88E8DC"
validation="SHA1" decryption="AES" />


可能是IIS回收了您的应用程序,因此您可以获得会话/视图状态的新密钥。为了缓解这种情况,请在web.config中添加一个机器静态密钥

<machineKey
validationKey="56AB7132992003EE87F74AE4D9675D65EED8018D3528C0B8874905B51940DEAF6B85F1D922D19AB8F69781B2326A2F978A064708822FD8C54ED74CADF8592E17"
decryptionKey="A69D80B92A16DFE1698DFE86D4CED630FA56D7C1661C8D05744449889B88E8DC"
validation="SHA1" decryption="AES" />


我已经添加了这一点。在添加machinekey部分后,我现在得到的错误是“无法验证数据”。我已经添加了该错误。添加machinekey部分后,我现在得到的错误是“无法验证数据”。