ASP.NET中的会话超时限制是什么?

12

我正在为一个用C#编写的ASP.NET应用程序修改Web.Config中的会话超时时间,目前超时时间设置为120分钟,如下所示:

<sessionState mode="InProc" cookieName="Application_SessionId" timeout="120"/>

这个值有限制吗?比如说,如果我想将它设置为24小时(1440分钟),会起作用吗?

它是ASP.NET 4.0版本,带有MVC 2.0。

3个回答

23

超时属性不能被设置为超过525,600分钟(1年)的值。默认值为20分钟。

缺点:如果您有大量用户并且会话超时时间增加,则您的非活动会话将保留在Web服务器内存中,这可能导致应用程序池重新启动,从而导致所有用户的所有会话都丢失,这样会影响性能。


当我登录Facebook时,即使过了一周,我仍然可以保持登录状态,这对我来说非常有价值。那么你是说如果我让我的MVC应用程序保持一周左右的登录状态,它会影响性能吗?是否有其他方法可以增加会话长度? - Jonathan Wood
@JonathanWood 我猜他们有一个单独的、轻量级的身份验证服务器,或者使用一些其他类型的cookie来实现这个目的。 - Daniel

7

默认值为20,最大值为525600525600分钟等于一年)。在Web.config文件中保留以下代码以维护最大会话超时时间:

<system.web>
    <sessionState mode="InProc" timeout="525600"></sessionState>
    ...
</system.web>

上面的方法对我有效。请参考这里

4

我不确定将会话超时设置为24小时是否有意义,但是我认为将其设置为最长365天是可行的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接