我是.net技术的新手,我对会话的概念感到困惑,我想知道 会议何时到期?
1)是会话超时
(或)
2)用户闲置。
请澄清我的疑问。
答案 0 :(得分:1)
会话丢失的原因很多。仅举几例,
- 应用程序池已被回收。 - 我们将了解这一点,查看系统日志
- 重新启动IIS /工作进程。 - 系统日志也会说明这一点
- 重新启动应用程序域。 - 我们需要监视
perfmon
中ASP.NET计数器的应用程序重启以检查这一点。应用程序重启的几个原因包括
- 某些应用程序触及了应用程序的Bin文件夹
- 触摸了Web.config或machine.config
- 触及Global.asax文件
- 防病毒正在运行
- 代码中的某些东西导致会话丢失,它可以是任何东西。您需要查看代码才能解决此问题。
- 还有更多......
来源:MSDN Blog
答案 1 :(得分:0)
asp.net中的会话将在超时后到期,默认情况下超时为20分钟[msdn reference]。
此超时是滑动超时,表示如果用户在这20分钟内显示任何活动,倒计时将再次从20分钟开始。因此,为了使会话到期,用户应该闲置20分钟。
您可以在Web.config标记中更改此超时,如下所示。
<sessionState mode="InProc" cookieless="false" regenerateExpiredSessionId="true" timeout="35">
<providers>...</providers>
</sessionState>
答案 2 :(得分:0)
会话是你应该尽可能避免的事情。它不能很好地扩展,并且不可靠。如果你确实使用Session,那么它应该是短暂的,因为你无法保证会话对于InProc会话保持多长时间。
无论如何,根据您的设置,会话可以是超时或空闲。如果启用滑动超时,则实际上会成为空闲超时。如果您没有启用滑动超时,则它是基于平时的超时。
然而,再次,仅仅因为超时可能是20分钟,不能保证它将在20分钟内可用。