【问题标题】:Session timeouts unexpectedly会话意外超时
【发布时间】:2011-12-17 06:59:08
【问题描述】:

我面临一个非常奇怪的问题。实际上,我使用 C# 在 ASP.NET 中开发了一个 Web 应用程序。我的应用程序有两部分:一是管理员,二是用户。当我在本地服务器上运行我的应用程序时,它工作正常,但是当我将它托管在远程服务器上时,我遇到了一个奇怪的问题。问题是当我浏览我的应用程序或单击任何按钮或链接按钮时,有时它会重定向到登录页面。我不明白是什么问题。我像这样检查每个页面上的会话:

    if (Session["admin"] != null)
    {
        // do some thing.
    }
    else
    {
        Response.Redirect("AdminLogin.aspx");
    }

我在 web.config 文件 <sessionState mode="InProc" timeout="10000"></sessionState> 中设置了会话超时,但我仍然面临这个问题。那么有人可以帮帮我吗? 谢谢。

【问题讨论】:

  • 您确定这是超时问题吗? admin 值不是在任何地方都被覆盖了吗?
  • 可能是主机服务器正在回收您的应用程序池。是共享主机吗?
  • 在会话中添加值和在会话中删除值的位置。?
  • 我在登录页面添加会话并仅在注销按钮上删除,
  • 实际上我不明白这是什么问题。这是超时问题或任何其他问题。请帮帮我

标签: asp.net session timeout


【解决方案1】:

如果您使用 InProc 会话,您的应用程序池可能会由于不活动而超时(IIRC,默认值为 20 分钟)。发生这种情况时,IIS 进程将退出,并且您的会话状态将丢失,因为它存在于内存中。

解决方案是切换到基于 SQL Server 的会话状态,或者可能是状态服务器,或者禁用 AppPool 空闲超时(和回收,这可能会导致同样的问题)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 2011-08-13
    • 2010-12-25
    相关资源
    最近更新 更多