|
|
1
18
此错误最可能的原因是,当回发在所有视图状态加载之前停止时(用户点击停止或返回按钮),视图状态将无法验证并抛出错误。 其他潜在原因:
更新: Microsoft article on the issue 除上述情况外,他们还提出了另外两个潜在原因:
|
|
|
2
9
在。NET 3.5 SP1 渲染所有隐藏字段At TopOfForm 属性已添加到PagesSection配置中。 web.config文件
有趣的是,其默认值为true。所以,本质上,如果你在使用。NET 3.5 SP1,则ViewState会自动呈现在表单的顶部(在加载页面的其余部分之前),从而消除您遇到的ViewState错误。 |
|
|
3
6
我在某些特定版本的Safari 3上遇到了这个问题。我的解决方案是将ViewState移动到表单的顶部(扩展Page类并覆盖3.5之前SP1或.Net 3.5 SP1及以后版本的Render方法,默认情况下会这样做),并将ViewState拆分为几个不同的字段,而不是一个怪物文件。 看见 ViewState Chunking in ASP.NET 2.0 (maxPageStateFieldLength) |
|
|
4
4
这个免费的在线工具: http://aspnetresources.com/tools/machineKey 在web.config文件的system.web元素下生成machineKey元素。 以下是它生成的示例:
一旦你在web.config中看到这一点,错误本身就会突然变得有意义。 你得到的错误说
当你看这台机器的关键元素时,突然间你可以看到它在说什么。 通过在web.config中“硬编码”此值,asp.net用于序列化和反序列化视图状态的键保持不变,无论服务器场中的哪个服务器获取它。您的加密变得“可移植”,因此您的视图状态也变得“可便携”。 我只是猜测,也许 非常相同的服务器 (不在农场)如果由于任何原因“忘记”了它拥有的钥匙,由于任何级别的重置都会将其抹去,则会出现此问题。这也许就是为什么您在空闲期后看到此错误,并尝试使用“过时”页面的原因。 |
|
|
5
3
我以前也遇到过这个问题,这就是原因。
最初我们禁用了ViewStateMac属性(
|
|
|
6
3
我在我的网站上找到了这个问题的根源,我终于设法 解决 这不是对你问题的直接回答,但我想分享这一点信息。
过去我尝试了所有方法(包括上面Jeffaxe提出的解决方案),但都没有结果,我不想设置
是什么导致了我的问题?问题是由使用 情报。重写 (版本2.0 RC 1 build 6)模块在我网站的某些页面上。我使用了一些SEO友好的链接,这导致了ViewState验证失败。当我使用“普通”链接(而不是SEO友好的链接)时,问题就消失了! 我重复了几次这个问题,以确保它不是误报(我使用ASP.NET 3.5)。 我知道你们中的一些人可能没有使用上面的模块,仍然会遇到这个错误,这意味着原因是其他原因。至少,分享这段经历可能对一些人有所帮助。 |
|
|
7
2
当我在页面上设置了一个没有action属性的表单标签时,我遇到了这个错误,然后在后面的代码中,我将表单的action属性更改为“action.aspx”。 在JavaScript中,我提交了表单(form.submit();) 我认为在我的情况下,这是一个安全问题,在页面上设置后,您无法更改它。.. ? |
|
|
8
1
不确定这是否对任何人都有帮助,但我的解决方案是在我的webconfig中排除machineKey,以便传递我的cookie。 |
|
|
Deverill · 如何在web应用程序中高效存储信息 12 年前 |
|
SausageBuscuit · 按下后退按钮时触发ASP.NET按钮事件 12 年前 |
|
|
markzzz · 如何在处理WebForm之前调用母版页的父级? 12 年前 |