我有一个listView来显示数据列表.我们收到以下错误消息,这一切都很好,并且非常友好:
验证视图状态MAC失败.如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法.AutoGenerate不能在群集中使用.无效的viewstate.客户端IP ...用户代理:Mozilla/4.0(兼容; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3)ViewState:
有谁可以指导我如何解决这个问题.请注意:1.我们的IIS服务器是独立的而不是养殖的.
更新:ListView具有指向用户可以单击的记录的超链接.谢谢堆.
Jas*_*ong 32
可能是IIS回收了您的应用程序,因此您获得了会话/视图状态的新密钥.要解决此问题,请在web.config中添加计算机静态密钥.
从http://www.eggheadcafe.com/articles/GenerateMachineKey/GenerateMachineKey.aspx生成密钥
并将密钥放在web.config示例中,如下所示
<machineKey
validationKey="56AB7132992003EE87F74AE4D9675D65EED8018D3528C0B8874905B51940DEAF6B85F1D922D19AB8F69781B2326A2F978A064708822FD8C54ED74CADF8592E17"
decryptionKey="A69D80B92A16DFE1698DFE86D4CED630FA56D7C1661C8D05744449889B88E8DC"
validation="SHA1" decryption="AES" />
Run Code Online (Sandbox Code Playgroud)
本<machineKey>应该内部放<system.web>部分.
我认为问题是Different keys across postback,所以您需要生成新的加密密钥。
来自代码项目:
ASP.NET 使用两个密钥来加密、解密和验证 ViewState、表单身份验证票证和进程外会话数据中的数据。解密密钥用于认证票据和加密的ViewState信息的加密和解密。validationKey 用于验证 ViewState 并确保它没有被篡改,并为进程外会话存储生成唯一的特定于应用程序的会话 ID。如果密钥在回发之间发生变化,您可能会遇到问题。
通常,在迁移到生产环境时,您需要考虑一些问题。
这里有一篇关于这个的好文章。
| 归档时间: |
|
| 查看次数: |
30458 次 |
| 最近记录: |