【问题标题】:ASP.NET State ErrorASP.NET 状态错误
【发布时间】:2010-04-15 20:31:57
【问题描述】:

我有一个 asp.net 页面,其中的产品列表显示在下拉列表中。当用户选择一个项目时,相应的价格、可用数量等会显示在相应的文本框中。我已经使用 ajax 更新面板来检索这些信息。

这种方法起初似乎效果很好,但有时在选择产品时,价格和数量需要很长时间才能改变,有时甚至不会改变。然后我使用firebug查看ajax请求发生了什么,我发现来自服务器的响应是这样的 -

70|error|500|The state information is invalid for this page and might be corrupted.|

我完全不知道这里出了什么问题......

【问题讨论】:

  • 您的应用程序是否在 webfarm 中运行?

标签: asp.net


【解决方案1】:

这可能是一个时间问题,因为您提到有时页面的某些部分需要一段时间才能在选择下拉列表值时呈现。可能发生的情况是,当(快速)从下拉列表中选择另一个不同的值时,当前页面请求完成渲染之前触发了对服务器的 ajax 回调。

这意味着作为页面一部分的事件验证字段 (__EVENTVALIDATION) 值可能尚未呈现,因此未发送回服务器。出于安全原因,ASP.NET 在回发时使用此值,以确保它来自同一页面而不是某个虚假页面。如果请求中没有提供它,则 ASP.NET 假定它是一个不同的页面,因此返回该特定的错误消息。

您可以disable event validation,但这可能会使您的网络应用容易受到攻击,尤其是在面向公众的情况下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 2018-06-14
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 2014-10-05
    相关资源
    最近更新 更多