如果阅读,httpcontext.session会保持活动吗?

时间:2015-06-26 07:04:36

标签: c# asp.net-mvc httpcontext

我知道MVC C#中的Httpcontext.Session默认超时时间为20分钟。

但是如果每10分钟读一次呢?这会延长超时期限吗?或者即使在20分钟内阅读,它还会在20分钟后超时吗?

和第2部分#。假设如果在超时期限内读取httpcontext,则httpcontext不会超时,是否可以将dbcontext存储在httpcontext.session中?

像这样的代码:

public GenericDal()
{
    if (HttpContext.Current.Session["unitOfWorks"] == null)
    {
        unitOfWorks = new UnitOfWork();
        HttpContext.Current.Session.Add("unitOfWorks", unitOfWorks);
    }
    else
    {
        unitOfWorks = (UnitOfWork)HttpContext.Current.Session["unitOfWorks"];
    }

}

1 个答案:

答案 0 :(得分:1)

它使用滑动过期,因此当您访问它时,超时会被延长。

  

只要继续请求,会话就被视为活动   具有相同的SessionID值。如果请求之间的时间   特定会话超过指定的超时值(以分钟为单位),   该会话被视为已过期。请求已过期   SessionID值导致新会话。

https://msdn.microsoft.com/en-us/library/vstudio/ms178581(v=vs.100).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

我不会将上下文放在会话中。关于会话中DBContext的讨论已有详细记录 -

One DbContext per web request... why?