异常“Validation of ViewState Mac failed”及解决办法

项目顺利完成,到客户现场进行系统测试(使用VS2005进行压力测试和响应测试),在系统日志中出 现如下错误:

[HttpException (0x80004005): Validation of viewstate MAC failed. If this application
is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies
the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.]

应用程序部署在NLB环境,访问MSCS集群的SQL Server 2005数据库,包括应用程序服务器、数据库服 务器、文件服务器等都可以做Failover。

在公司进行测试的时候,2.5倍于客户现场测试的压力下没有此问题,所以主要怀疑受性能影响。

<1>服务器端检查:客户服务器优于开发测试用服务器为双核酷睿(8 CPU),内存4GB,通过监 视程序没有出现IIS进程超过2GB情况(基本在700MB左右)。

<2>客户端检查:因为是金融公司所以客户端性能比测试用客户端性能差很多,使用VS2005进行 测试的时候,每台机器只能分配500个用户,CPU使用率达90%-100%。

怀疑由于客户端能力比较差,页面未能完全表示进行回发出现问题。通过查找资料,获得如下信息:

* 确保你没有使用Web Form

* 你使用了内置数据绑定控件(如GridView),并且由于绑定的数据中有主键或索引所以设置了 DataKeyNames属性。

* 你的页面表示的内容数据量大或加载时间比较长。

满足以上条件时,如果页面没有完全加载到客户端(IE)进行回发(Posting Back),你可能会看到 上面的异常信息。

此问题出现的原因是GridView等数据绑定控件使用DataKeyNames属性时,请求ViewState加密。此方法 会在页面</form>标签的上方追加<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />标签。当请求的页面信息量比较大,相应时间比较长的时候 ,客户端可能还没有完全表示就可以通过页面的按钮触发服务器端回发(服务器端控件操作)。因为回发 的内容不包括加密标签,回到服务器端进行验证的时候就会失败。(此问题不仅在测试软件的情况下会出 现,经测试,在客户使用系统的时候此问题也可能出现。)

解决此问题的方法是在web.config中关闭事件验证和ViewState加密属性的开关,如下:

<pages enableEventValidation="false" viewStateEncryptionMode ="Never" />

但请注意关闭开关引起的安全问题,稍后会发文讨论Event Validation和ViewState Validation等安 全性设定内容的实质,讨论使用场景。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索问题
, 客户端
, 服务器
, 测试
, 页面
, vs2015 异常
, validation
, 异常处理:ensure
服务器端mac
validation failed、failed re validation、经营异常名录管理办法、红米充电异常解决办法、cf网络异常的解决办法,以便于您获取更多的相关知识。

时间: 2024-11-10 01:10:50

异常“Validation of ViewState Mac failed”及解决办法的相关文章

Validation of viewstate MAC failed.的解决方法_服务器

办法:页面的顶部page加 EnableViewState="False" EnableViewStateMac = "False" 来解决这个问题根据框架的提示如下: Server Error in '/' Application. -------------------------------------------------------------------------------- Validation of viewstate MAC failed. 

Validation of viewstate MAC failed异常的原因及解决方法

Validation of viewstate MAC failed异常的原因及解决方法 事件日志里偶尔能发现这个错误,却一直找不到有效的解决方法.经过仔细研究分析之后,发现出现这个错误的概率还是很小的,还需要满足多个条件才行: 1.页面中使用了GridView, DetailsViews, FormView等采用内置数据绑定控件 2.就是这个页面的内容较多,在网速较慢的情况下需要较长的时间才能加载完 3.在页面还没有加载完成的情况下,点击了Postback性质的按钮.如果是get方式的url链

Validation of viewstate MAC failed 解决办法

大部分人都说是在页里或web.config里加EnableEventValidation="false" EnableViewStateMac="false" ViewStateEncryptionMode="Never" 这些属性的设置.但是这并不从根本上解决问题,相反这样做了反而更加不安全. 为了解决问题我继续收集资料,不经意的发现了一个网页里讲到一个Blog系统从NET1.1升级到NET2后,之前所生成的所有cookies将会失效,因为NE

mac os gem安装json出现error failed的解决办法_ruby专题

升级到最新的mac os Mavericks.装json出现错误: 复制代码 代码如下: gem install json -v '1.8.1' Building native extensions.  This could take a while... ERROR:  Error installing json:   ERROR: Failed to build gem native extension.     /usr/local/var/rbenv/versions/2.0.0-p24

Linux修改密码报PAM authentication failed错误解决办法

最近接到一个运维开发任务,需要开发一个帐号管理系统,对手头三千多台Linux服务器的root帐号进行批量系统的管理,实现定期修改root为随机密码并加密存储,并向运维管理WEB前台提供密码查询解密接口等功能. 刚开始,我基于php+ssh2_exec开发了一套雏形.基本功能都实现了,结果老大说这里的运维就我稍微会点php,后面可不好维护.本来也被我说服了,因为写都写好了,难道要重构?后面线上测试发现,公司有部分系系统接入了ldap鉴权,php的ssh2_exec就无法工作了,返回登陆失败的错误.

SSH登录失败:Host key verification failed.的解决办法

今天在SSH登录时候显示登录失败,Host key verification failed. 错误提示如下: ~ zfs$ ssh root@192.168.1.103 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

svn上传报Authorization failed错误解决办法

svn上传文件时没有弹出用户登录界面,而是直接报Authorization failed错误.出现该问题基本都是三个配置文件的问题,下面把这个文件列出来 svnserve.conf配置文件中的 [general] anon-access = read auth-access = write password-db = passwd authz-db = authz 注意:这几个配置项都需要在[general]配置项下. passwd配置文件 [users] admin=123 authz配置文件

Mac显示flash已过期无法使用怎么办 Mac flash过期解决办法介绍

  有用户遇到在mac上看在线视频或浏览某些网站的时候总显示Flash已过期,需要下载新的版本,可是到adobe官网也没看到更新信息.原来出于安全顾虑,苹果目前在Mac上 OS X系统里已经远程屏蔽了所有版本的 Adobe Flash Player插件.包括刚发布的 16.0.0.235,以及较老版本 13.0.0.259,都在屏蔽名单中.用户在使用Safari浏览器访问 flash 内容时,将会收到插件已拦截.Flash 安全警告.Flash 过期等提示信息. 这也就意味着,用户无法通过Saf

提示“installer integrity check has failed”的解决办法

  有以下情况会出现此问题: 1.内存不兼容或其他硬件不兼容 2.下载程序已损坏 解决方法: 使用NCRC命令跳过installer检查具体步骤如下: 找到安装程序(如SETUP.EXE,具体的安装文件请自行按软件判断),右键创建快捷方式 右键点击刚刚创建的快捷方式,单击属性 在目标栏中的目标后按一个空格后输入/NCRC,输入好后运行快捷方式就可以安装了 如果成功即可进入安装程序. 出现错误,说明文件损坏,您需要重新下载程序 内存条如果有问题,就会出现此类情况.