ASP.NET会话提前超时

本文关键字:超时 会话 NET ASP | 更新日期: 2023-09-27 18:28:29

我也看到过和我一样的其他问题,但它们与我的不完全一样。我通过web.config文件中的以下条目使用标准ASP.NET身份验证:

<authentication mode="Forms">
  <forms name=".ASPXAUTH" loginUrl="login.aspx" timeout="3600" />
</authentication>

login.aspx.cs

accountID = myReader["AccountID"].ToString();
Session["AccountID"] = accountID;

我用1和5的值测试了它,它的工作原理是应该的。将其设置为3600并放置半小时,当我重新加载页面时,它过期并重定向我登录。我阅读了有关IIS会话状态设置的信息。在我尝试1分钟和5分钟之前,我禁用了这些功能,它似乎有效。只是长时间不起作用。最初IIS设置为正在进行中,模式为使用cookie,超时时间为20分钟。将其更改为3600以匹配web.config,但超时太早。禁用了它,它可以在短时间内工作,似乎不到30分钟。

在IIS中更改这些设置时,是否需要重置IIS?那么,当我认为它被禁用时,这个设置还在20分钟吗?这似乎就是它的表现。

ASP.NET会话提前超时

删除Forms标记中的超时值,并在Web.config 中添加会话超时

 <sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="20">
  <providers>
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
  </providers>
</sessionState>

如果有人正在检查此项,但不知道为什么他们遵循了上面的说明,但在其他环境中它仍然会提前超时,则可能需要检查负载平衡器是否在会话到期前切换到不同的节点。