为什么会话状态丢失得这么快?

时间:2014-02-18 12:07:48

标签: asp.net iis session-state

我们有一个Web应用程序,客户可以通过它访问信息。据许多客户报告,他们在没有活动的情况下在5分钟内退出。我相信这应该只在默认的20分钟空闲超时后发生,这是从我们的域内访问网络应用程序的情况。

我还花了几天时间来解决一个错误,其中一些用户的会话数据在回发之间丢失了大约60%的时间,导致应用程序错误,因为下一页需要数据。唯一的解决方案是解决方法,其中我使用额外的机制在回发之间缓存数据,并在会话数据消失时从该缓存中提取数据。

我还注意到一些访问需要登录凭据的网站也会在回发之间启动 me 。例如,我参加课程的学校的网站需要登录其门户网站的凭据。在家我从来没有任何问题,但如果我从我的工作域访问它,我经常得到随机错误,表明我的凭据已丢失(即登录和浏览页面后“不允许未经授权的访问”)。

通过网络获取创意让我走上了几条道路,但大多数都解决了IIS工作流程和ASP.NET问题,而且没有帮助我。

有没有人对如何解决此问题有任何想法或建议?

2 个答案:

答案 0 :(得分:0)

这不是因为编程问题...这是因为您的主机容量...因为您知道会话是一种内存类型,当每个用户访问您的网站时为每个用户创建,并且当他们访问时终止完成访问...所以在这种情况下,我想网站访问者的数量已经上升,所以默认情况下,当内存已满时,它会踢出一个会话并导致所有这些问题...我认为最好的办法是在您获得主机服务的地方打电话,并要求提供涵盖网站需求的服务

答案 1 :(得分:-1)

您只需将会话值存储到cookie中,以便在会话终止时访问该值。或者您可以使用全局文件来管理会话状态。