我面临一个非常奇怪的问题。实际上我使用C#在ASP.NET中开发了一个Web应用程序。我的应用程序有两个部分:一个用于管理员,另一个用于用户。当我在本地服务器上运行我的应用程序时它工作正常,但当我在远程服务器上托管它时,我面临着一个奇怪的问题。问题是当我浏览我的应用程序或点击任何按钮或链接按钮时,有时它会重定向到登录页面。我不明白是什么问题。我在每个页面上查看会话,如下所示:
if (Session["admin"] != null)
{
// do some thing.
}
else
{
Response.Redirect("AdminLogin.aspx");
}
我在web.config文件<sessionState mode="InProc" timeout="10000"></sessionState>
中设置了会话时间,但我仍然面临这个问题。那么任何人都可以帮助我吗?
感谢。
答案 0 :(得分:2)
如果您正在使用InProc会话,则可能是您的应用程序池由于不活动而超时(IIRC,默认为20分钟)。当发生这种情况时,IIS进程退出,并且您的会话状态将丢失,因为它存在于内存中。
解决方案是切换到基于SQL Server的会话状态,或者可能是State Server,或者禁用AppPool空闲超时(以及回收,这可能会导致同样的问题)。