会话超时意外

时间:2011-12-16 11:17:32

标签: asp.net session timeout

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

相关问题