会话变量在没有任何明显原因的情况下被清除

时间:2016-05-20 13:07:29

标签: c# asp.net

我有这段代码:

var thisUser = Session["user"];
if (thisUser == null)
{
    LogFile.Log("Logging out");
    Response.Write("xp");
}

我试图找出为什么有时当我使用系统几分钟时突然user会话变量变为空。

它在不同的场景中随机发生。

我不会在任何时候将Session["user"]设置为null。

会话超时设置为20分钟。

我不会在任何时候致电Session.Clear()

任何想法\想法\我应该看看它为什么会发生?

如果有任何帮助,我正在使用Firefox。

系统是使用asp.net构建的。

欲了解更多信息,请询问。

3 个答案:

答案 0 :(得分:0)

首先,这看起来像C#和ASP.NET,而不是传统的ASP。现在,如果您从未自行清除会话并且服务器(或应用程序池)从未重新启动,那么丢失会话的唯一方法就是清除浏览器的cookie。

答案 1 :(得分:0)

编辑web.config将回收应用程序池,清除会话信息。

答案 2 :(得分:0)

你打电话给同一个主人吗?如果基本URL不同,则服务器会将其视为不同的用户。例如:

http://localhost/path/to/resourcehttp://localhost:80/path/to/resource

都指向相同的资源,但请求不同,会话cookie将不同或不存在。

测试此功能的一种简单方法是启动浏览器的开发人员工具栏并监控网络流量。比较URL以确保它们是相同的基本路径,并在请求中传递相同的会话cookie。