Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IsPostBack在ASP.NET中失败?_C#_Asp.net_Ispostback - Fatal编程技术网

C# IsPostBack在ASP.NET中失败?

C# IsPostBack在ASP.NET中失败?,c#,asp.net,ispostback,C#,Asp.net,Ispostback,我们为一家物流公司创建了一个ASP.NET 3.5应用程序,该应用程序允许其客户输入交货/作业,并将其输入到系统中 正如您所能想象的那样,系统中的核心页面是添加作业屏幕——当用户建立他们的作业时,我们会在会话中存储一些相关信息。然后,当他们提交作业时,或者当请求不是回发时,在页面加载事件中,会话被清除,为下一个作业做好准备 我们遇到了一个小部分客户的问题,其中用户会话似乎在提交发生之前被擦除-用户向我们保证他们不会尝试使用多个会话(即同一页面的两个窗口)。我们加入了一些错误捕获,每当在该页面上清

我们为一家物流公司创建了一个ASP.NET 3.5应用程序,该应用程序允许其客户输入交货/作业,并将其输入到系统中

正如您所能想象的那样,系统中的核心页面是添加作业屏幕——当用户建立他们的作业时,我们会在会话中存储一些相关信息。然后,当他们提交作业时,或者当请求不是回发时,在
页面加载
事件中,会话被清除,为下一个作业做好准备

我们遇到了一个小部分客户的问题,其中用户会话似乎在提交发生之前被擦除-用户向我们保证他们不会尝试使用多个会话(即同一页面的两个窗口)。我们加入了一些错误捕获,每当在该页面上清除会话时都会记录这些错误捕获,而且
page\u Load
事件中的“clear session”似乎在单击submit前几秒钟触发。请注意,本页上有许多
autopostback
控件


是否存在任何ASP.NET怪癖或浏览器怪癖,这意味着
IsPostback
属性将错误地为false?这是一个非常零散的问题,我们没有运气复制它

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

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


如果有一些奇怪的原因,你仍然需要在会话中保存数据,考虑切换到一个持久会话存储(即使用SQL Server)。

为什么首先使用一个会话?你的实际问题听起来像是一个竞争条件,其中两个来自同一页面的请求重叠。可能用户连续两次点击提交。可能会话已过期。我是@CodesInChaos的人。。。使用会话听起来不太合适。为什么不使用ViewState来存储有关该页面的信息呢?这是一个我们现在正在维护的遗留应用程序,所以我知道使用会话进行此操作非常愚蠢!呜咽呜咽!我的解决方案被盗:(我在OP comment区域对ViewState的使用进行了注释。