什么会话将在Asp.net或Asp.Net MVC中过期?

时间:2014-07-31 06:22:31

标签: asp.net asp.net-mvc session

我是.net技术的新手,我对会话的概念感到困惑,我想知道 会议何时到期?

1)是会话超时

(或)

2)用户闲置。

请澄清我的疑问。

3 个答案:

答案 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分钟内可用。