FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 7815|回复: 6
打印 上一主题 下一主题

验证视图状态MAC失败

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-23 18:04:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
快速(死命)点击下一页 会出现以下BUG
“/demo_pro”应用程序中的服务器错误。
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

http://go.microsoft.com/fwlink/?LinkID=314055
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

http://go.microsoft.com/fwlink/?LinkID=314055

源错误:

[没有相关的源行]

源文件: c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\demo_pro\c3f7c395\3e12b5e\App_Web_pgsqckih.3.cs    行: 0

堆栈跟踪:

[ViewStateException: 无效的视图状态。        Client IP: 183.63.253.34        Port: 11639        User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 SE 2.X MetaSr 1.0        ViewState: /wEPDwUKMTcyODEwMzQ4MA9kFgICAw9kFgICAw9kFgQCCg9kFgICAQ8PFgIeBFRleHQFA+eUt2RkAgsPZBYCAgEPDxYCHwAFA+Wls2RkAgwPZBYCAgEPDxYCHwAFA+eUt2RkAg0PZBYCAgEPDxYCHwAFA+Wls2RkAg4PZBYCAgEPDxYCHwAFA+eUt2RkGAIFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYDBQVHcmlkMQURR3JpZDEkZGRsUGFnZVNpemUFB0J1dHRvbjEFBUdyaWQxDw9kZWR00Pg5hv9P+NkDVsM+siRLuMD3sQ==        Referer: http://fineui.com/demo_pro/grid/ ... esize_database.aspx        Path: /demo_pro/grid/grid_pageitems_pagesize_database.aspx][HttpException (0x80004005): 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。http://go.microsoft.com/fwlink/?LinkID=314055]   System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +153   System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState) +14   System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +237   System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) +4   System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) +37   System.Web.UI.HiddenFieldPageStatePersister.Load() +207   System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +199   System.Web.UI.Page.LoadAllState() +43   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6785   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +242   System.Web.UI.Page.ProcessRequest() +80   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21   System.Web.UI.Page.ProcessRequest(HttpContext context) +49   ASP.grid_grid_pageitems_pagesize_database_aspx.ProcessRequest(HttpContext context) in c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\demo_pro\c3f7c395\3e12b5e\App_Web_pgsqckih.3.cs:0   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75


版本信息: Microsoft .NET Framework 版本:2.0.50727.5483; ASP.NET 版本:2.0.50727.5483

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2015-4-23 21:33:21 | 只看该作者


死命狂点!我这没能重现:http://fineui.com/demo_pro/#/dem ... esize_database.aspx


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
 楼主| 发表于 2015-4-24 09:35:11 | 只看该作者
你这数据量小 加载速度快
地板
发表于 2015-4-24 10:36:20 | 只看该作者

这个问题很经典,一般情况下不会出现用户死命狂点的情况,即使出现类似问题,刷新下页面就行了。

通过一个例子来说明,看下图:第二个AJAX请求先发出,但是在第三个请求结束后才结束,此时页面的状态就乱掉了,也就出现了第四个请求的错误!



这个问题我可以通过在用户点击下一页时,先禁用此按钮,等AJAX返回后再启用此按钮解决,这个更新会出现在下个版本中(v2.5.0)。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5#
 楼主| 发表于 2015-4-24 11:32:40 | 只看该作者
这个得禁用分页所有按钮才行  否则还是会出现这种情况
6#
发表于 2015-4-24 16:46:08 | 只看该作者
wsk198726 发表于 2015-4-24 11:32
这个得禁用分页所有按钮才行  否则还是会出现这种情况



下个版本(专业版v2.5.0)会彻底解决这个问题,这是一个很隐蔽的BUG,从开源版就一直存在。

可以通过如下方式重现:
  • http://fineui.com/demo_pro/#/demo_pro/grid/grid_paging_database.aspx
  • 在处理分页的后台代码中,加入适当的延时,比如:System.Threading.Thread.Sleep(1000);
  • 快速点击【下一页】按钮两次,等待3秒钟左右;
  • 任意点击一个回发按钮,就会出现错误




=========================================
这个问题的根源在于 FineUI 处理 ViewState 更新时,是依据传入的 ViewState 进行部分更新导致的。
从下个版本(专业版v2.5.0)起,我们将彻底解决这个问题!


不管你是死命狂点还是玩命狂点,我们保证即使浏览器被点挂了,也不会出现这个错误框了!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
7#
发表于 2015-5-6 13:53:27 | 只看该作者
sanshi 发表于 2015-4-24 16:46
下个版本(专业版v2.5.0)会彻底解决这个问题,这是一个很隐蔽的BUG,从开源版就一直存在。

可以通过 ...

哈哈,浏览器点挂了不行,要把主机点冒烟
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-3 19:22 , Processed in 0.049360 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表