8

如果我将值存储在会话变量中

    Session["Int"] = 100;

Session_End 事件中的内容是什么?它将是 null 还是 100?

void Session_End(object sender, EventArgs e)
{
      object objInt = Session["Int"];          // Null or 100 ?
}

意思是, Session_End 会在处理会话中的所有内容之后还是之前触发?

4

2 回答 2

12

它是 100。

要自己测试它,只需将 ASP.NET 应用程序文件添加global.asax到您的项目并处理Session_Start结束Session-End事件:

void Session_Start(object sender, EventArgs e)
{
   Session["Int"] = 100;          // 100
}

void Session_End(object sender, EventArgs e)
{
    object objInt = Session["Int"];  // it is still 100 here
}

Session.Abandon()您可以在(或到期时)结束会话。

protected void Page_Load(object sender, EventArgs e)
{
    Session.Abandon();  // after this Session.End is called
}
于 2012-09-06T07:06:26.073 回答
0

我发现 Session["Int"] 将为 100。我将会话超时设置为仅 1 分钟,并在该事件中设置了一个断点。

于 2012-09-06T07:07:28.610 回答