空Session对象会记住sessionID吗?

时间:2012-04-18 09:41:52

标签: c# asp.net session

我确定如果没有存储任何值,会话ID会不断变化。

enter image description here

但似乎2010年有例外: here is the demo vid

新页面(空项目):

   protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(Session.SessionID);
    }

奇怪但是在回发/刷新/ ctrl + f5之后:我得到了相同的号码......但是不应该那样....(从那以后我没有存储任何东西)

enter image description here

我错过了什么?

P.S。 Session.Count = 0 .....

修改

我只是在 vs2005 中运行相同的代码,每次都会有一个新的会话ID !!!!

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

应该是那样的。

Session是一个特殊的ASP.NET运行时对象,在确定的时间内存在于所有请求/响应中。它的设计保持不变,无论是页面加载还是回发。

会话终止,然后达到超时时间。您可以控制要使会话保持活动的确切超时:

Session timeout in ASP.NET

您还可以控制请求之间持久会话的位置。

http://msdn.microsoft.com/en-us/library/z1hkazw7.aspx

在内存状态管理中简化了一个,它只是将Session对象保存在RAM中。因此,如果app-pool被回收,所有数据都将消失。更多生产就绪方案包括SQL状态管理。

修改 我只是假设,然后你在VS2005上运行,你运行旧版本的ASP.NET Web开发服务器(Cassini),确实我的工作方式是在每个新请求中都有Session,如果还没有存储在Session中的话。 / p>