3

我们有一个为物流公司创建的 ASP.NET 3.5 应用程序,它允许他们的客户输入交货/工作并将它们输入系统。

系统中的核心页面是您可以想象的 Add Job 屏幕 - 当用户建立他们的工作时,我们将一些信息存储在 Session 中。然后,当他们提交作业时,或者在Page_Load请求不是回发的情况下,会话被清除,为下一个作业做好准备。

我们遇到了一小部分客户的问题,其中用户会话似乎在提交发生之前被擦除 - 用户向我们保证他们没有尝试使用多个会话(即同一页面的 2 个窗口) . 我们在该页面上清除了会话时记录了一些错误捕获,并且似乎在Page_Load事件中的“清除会话”在他们单击提交之前触发了几秒钟。请注意,我们在此页面上有很多autopostback控件。

是否有任何 ASP.NET 怪癖或浏览器怪癖,这意味着该IsPostback属性将错误地为假?这是一个非常零星的问题,我们无法复制它!

4

1 回答 1

0

正如许多评论所建议的那样,会议是错误的解决方案。它可以被很多东西重置(例如应用程序池回收)。

您不应该强迫用户不要使用不同的浏览器或选项卡,因此正确的选择是将数据移动到 ViewState/Control 状态。

如果由于某些奇怪的原因您仍然必须在会话中保留数据,请考虑切换到持久会话存储(即使用 sql Server)。

于 2013-02-21T15:35:10.157 回答