Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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
Asp.net 在会话中丢失更改的数据_Asp.net_Session - Fatal编程技术网

Asp.net 在会话中丢失更改的数据

Asp.net 在会话中丢失更改的数据,asp.net,session,Asp.net,Session,在将响应发送回客户端之前,我们的asp.net 2.0应用程序有一个非常长的同步过程。我观察到,当我们的应用程序仍在处理第一个请求时,在客户端IE8等待响应很长一段时间之后发送了第二个请求,与初始请求完全相同 我使用带有预定义键的page session在初始请求到达时存储一个标志,然后在客户端IE等待响应时启动一个长过程,因此如果第二个请求进入,我们的应用程序将检查会话值。在应用程序设置会话标志并开始处理后,我使用Fiddler“Abort session”中止初始请求,立即自动发送与第一个请

在将响应发送回客户端之前,我们的asp.net 2.0应用程序有一个非常长的同步过程。我观察到,当我们的应用程序仍在处理第一个请求时,在客户端IE8等待响应很长一段时间之后发送了第二个请求,与初始请求完全相同

我使用带有预定义键的page session在初始请求到达时存储一个标志,然后在客户端IE等待响应时启动一个长过程,因此如果第二个请求进入,我们的应用程序将检查会话值。在应用程序设置会话标志并开始处理后,我使用Fiddler“Abort session”中止初始请求,立即自动发送与第一个请求相同的第二个请求,但前面设置的会话值似乎不再存在


有什么想法吗?

当第二个请求在您正在进行的过程中出现时,它是否会覆盖当前请求的值,因为它只存储一个项目?假设两个请求都在同一个会话下传入

可以考虑存储一个项目列表,这样你就可以把第二个项目添加到你的标志列表中,然后找到以前的项目并删除它们。 在启动第二个请求会话之前,可能会终止会话中当前的请求

我并不完全理解你的问题/解决方案,但希望这能有所帮助

根据您的评论进行编辑:

如果它不再存在,可能是由于您的会话超时并擦除了值,因此第二个会话将无法访问它。第二个连接是在同一个会话下进行的吗?比较两种情况下的会话ID。同时检查您的超时


您还可以将此信息存储在过期时间很长的应用程序缓存中。如果您只希望每个用户有一个进程,请使用密钥为会话ID甚至用户的字典,然后存储您的值。当第二个请求由同一用户传入时,无论会话ID如何,您都可以找到它。只需确保在流程完成后清除即可。

是,它是一项,但它会在设置值之前检查标志是否已存储在会话中。问题是第二个请求进入,第一个请求在会话中设置的标志不再存在。