我在asp.net Web应用程序中定义了会话:
<sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="5">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
在应用程序中,我正在从会话中读取/保存数据。
Session["userId"] = "UID123443";
string userId = Session["userId"].ToString()
我的问题是,如果我将数据读/写到会话,是否会自动重新初始化超时?
如果是,有什么方法可以阻止这种情况吗?例如,我需要会话从5到5分钟到期,即使我在此期间从中访问数据。
答案 0 :(得分:3)
我相信每次对服务器执行任何操作时都会重置超时会话。因此导致回发将重置计时器。
您可以添加一个名为'WhenToTimeout'的会话变量,您将其设置为5分钟。只做一次。然后,当前时间晚于此时 - 执行您需要做的事情(将其记录下来,......)