这是错误
无效的回发或回调参数。使用配置或页面中的 <%@ Page EnableEventValidation="true" %> 启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法注册回发或回调数据以进行验证。
我也经常得到这些
此页面的状态信息无效,可能已损坏。
我已经阅读了大约 20 个其他“无效回发或回调参数”问题和答案,我认为我的问题不属于任何常见类别:
- 动态客户端创建或更改 ASP.NET 不知道的控件
- 用户提交代码或代码位,例如“<”和“>”字符
- 在每个 Page_Load 事件中绑定数据而不明智地使用 if (!IsPostBack)
- 错误的 AJAX CascadingDropDown 扩展器
- 俄罗斯人试图入侵您的网站(!)
- 拨号用户的间歇性问题 (!)
- ASP.NET 版本之间的不匹配,例如同时使用 ASP.NET 1.1 和 2.0 的服务器场
我认为我的问题与此列表中的最后一个问题最相似。
在表单回发时,我在我的 2 Microsoft Azure Web 服务器负载平衡测试环境中间歇性地(但经常)遇到错误。
我注意到当其中一个服务器生成的页面被回发到另一个时,就会出现问题。当我取消负载平衡(仅访问一台服务器)时,问题就消失了。
我在一个 Web 服务器上使用 Win Server 2008 R2 (IIS7.5),在另一个 Web 服务器上使用 Win Server 2012 (IIS8)(我对 2008 很熟悉,对 2012 很警惕,但我想学习,所以我选择运行其中一个每个人都可以对冲我的赌注,以防您想知道)。
2008 机器运行 ASP.NET 版本“4.0.30319.272 ”,2012 机器运行“4.0.30319.18010 ”,但显然 IIS 版本不同。
但它们都在运行 ASP.NET 4.0。.NET 应该使底层操作系统透明,对吗?所以我不太确定这是导致问题的原因。
重新构建一台服务器以使它们相同将是一件苦差事,如果 ASP.NET 的细微差异不是问题的原因,则宁愿避免它!
那么两个服务器在回发时不接受彼此的表单还有其他原因吗?仅供参考,我已经在两台服务器上的 web.config 中添加了一个条目,以修复我遇到的“视图状态 MAC 验证失败”错误。
或者我可以做任何配置更改以使服务器更兼容?
谢谢!