如何在DotNet应用程序中保持连续会话?

问题描述:

我在我的应用程序中面临一个问题,即当用户搜索任何数据,然后让应用程序闲置15-20分钟,然后尝试对应用程序执行任何操作时,应用程序就会崩溃。我正在使用简单的DevEx Grid来显示数据和详细信息行以及该网格的Popup控件。如何在DotNet应用程序中保持连续会话?

我认为问题出在会话上,因为我的应用程序无法维持会话持续时间以及由于哪个应用程序崩溃。

此外,我还没有使用任何会话变量进入我的应用程序的数据。

我找不到这个错误的真正原因。

有人可以帮我一样。

+0

增加会话超时时间或者如果您希望在应用程序生命周期中保持用户首选项,请将数据存储在应用程序变量中。处理异常,并在数据不可用时登出用户 – hungryMind 2012-07-23 09:05:24

+0

即使增加会话时间也没有用,因为我的应用程序在此之后崩溃。我已将会话时间设置为30分钟,但如果应用程序闲置30分钟或更长时间,则应用程序崩溃,我必须停止该崩溃并且不要增加会话超时。 – 2012-07-23 09:39:31

+0

使用Cookie而不是会话来保持用户浏览器会话中的详细信息...并处理cookie以填充初始数据 – hungryMind 2012-07-23 10:30:51

您可以编写客户端JavaScript来使ajax调用服务器。 这将保持你的会话活着。

它允许您在服务器上有一个短暂的超时时间,对于闲置的用户来说仍然很长时间。

确保有一个超时,但如果你的用户离开一个小时,页面应该将他注销。

+0

感谢我希望这种功能,但是您能告诉我如何让空白的ajax调用。 – 2012-07-23 09:33:08

+0

有很多方法可以做到这一点。最简单的方法是创建一个aspx页面并使用XMLHttpRequest https://developer.mozilla.org/en/using_xmlhttprequest调用它。看看像jquery这样的javascript框架是跨浏览器的投诉。 – nunespascal 2012-07-23 09:38:23

+0

非常感谢。 – 2012-07-23 09:41:40

您可以将IIS中的会话超时设置为一个非常高的数字或分钟(例如一整天的1440)。该设置位于“会话状态”区域。

另一种选择是使用Opera作为浏览器,并加载一次页面。之后,使用Opera的“每页重新加载页面”选项每分钟自动重新加载页面。这将延长会议永远。

由于您不会在会话中存储任何有用的内容,因此您应该设法重新加载而不会崩溃。为此,您需要在发生碰撞事故时进行任何处理,并找到防止碰撞的方法。或者通过初始化默认值或捕捉异常并重新开始。