我知道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"];
}
}
答案 0 :(得分:1)
它使用滑动过期,因此当您访问它时,超时会被延长。
只要继续请求,会话就被视为活动 具有相同的SessionID值。如果请求之间的时间 特定会话超过指定的超时值(以分钟为单位), 该会话被视为已过期。请求已过期 SessionID值导致新会话。
我不会将上下文放在会话中。关于会话中DBContext的讨论已有详细记录 -