1

.Net バージョン: 4.0.30319.34280 で実行されている共有サーバーでホストされている Web サイトがあります。

最初に次のエラーが発生しました

ビューステート MAC の検証に失敗しました。このアプリケーションが Web ファームまたはクラスターによってホストされている場合は、構成で同じ validationKey と検証アルゴリズムが指定されていることを確認してください。AutoGenerate はクラスタでは使用できません。

それを修正するために、 https ://support.microsoft.com/en-us/kb/312906 に記載されている手順に従って、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

解決の助けになれば幸いです。

4

1 に答える 1

0

IIS がアプリをリサイクルしたため、セッション/ビュー状態の新しいキーを取得した可能性があります。これを軽減するには、web.config にマシンの静的キーを追加します。

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

参照リンク

于 2015-12-19T09:22:36.637 に答える