官方的 Invalid Viewstate 解决方案

本文探讨了ASP.NET Web页面中出现的间歇性InvalidViewstate错误的原因及解决方案。包括调整应用池回收设置、配置machineKey以确保多服务器一致性、正确处理表单提交及避免代理服务器和防病毒软件干扰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Intermittent Invalid Viewstate Error in ASP.NET Web pages

 

 1、Application Pool Recycling

 IIS 6 周期性的回收应用程序池,当应用程序池被回收时,客服端请求可能会导致  invalid viewstate error。解决该

情况的方法是重新调整应用程序池,使其回收期尽可能少的发生在访问高峰时间。

 

2、Server Farms or Server Clusters

 

 如果此应用程序由 Web 场或群集托管,确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
 Asp.Net的很多加密,都是依赖于machineKey里面的值,例如Forms 身份验证 Cookie、ViewState的加密。默认情况下,

Asp.Net的配置是自己动态生成,如果单台服务器当然没问题,但是如果多台服务器负载均衡,machineKey还采用动态生成的方式

,每台服务器上的machinekey值不一致,就导致加密出来的结果也不一致,不能共享验证和ViewState,所以对于多台服务器负载

均衡的情况,一定要在每台站点配置相同的machineKey。

 

Key 必须是128为随机字符组成,确保其在每个webserver的配置文件中


3、Form Posts

 

 viewstate 只能回发到同一页,如果传递到其他页将失效导致 Invalid Viewstate error。
 如果不实现身份验证机制,避免使用机器身份验证检查。disabling the Machine Authentication Check,

 

4、Proxy servers and Virus Scann

 

 防火墙以及防病毒软件可篡改 ViewState 从而导致 Invalid Viewstate error。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值