我在我的网站Session [“name”],Session [“lastname”]和Session [“username”]中有3个活动Sessions,Session.Abandon()会放弃所有这些吗?
答案 0 :(得分:3)
实际上,您有一个活动会话(不是三个)。该会话具有与之关联的三个键/值对。
是的,一旦处理完当前页面,Session.Abandon()将在放弃会话的过程中删除所有这些变量。
调用Abandon方法后,当前会话不再有效,可以启动新会话。
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.abandon.aspx
当调用Abandon方法时,当前的Session对象排队等待删除,但在处理完当前页面上的所有脚本命令之前,实际上并未删除。这意味着您可以在与调用Abandon方法相同的页面上访问存储在Session对象中的变量,但不能访问任何后续Web页面。
http://msdn.microsoft.com/en-us/library/ms524310(v=vs.90).aspx
<强>更新强>
如果你想在页面完成执行之前“摆脱”键/值对,你可以像这样清除它们:
Session.Contents.RemoveAll()
答案 1 :(得分:0)
是的,对象将被销毁,但不会立即销毁(来自msdn)
调用Abandon方法时,当前的Session对象是 排队等待删除,但实际上并没有被删除 已处理当前页面上的脚本命令。这意味着 您可以访问存储在Session对象中的变量 page作为对Abandon方法的调用,但不在任何后续Web中 页。
这是一个会话和3个变量。如果您需要删除它们,请尽快将它们指向 null ,数据将立即成为GC的主题(这不是确定性的)。
Session["name"] = null;
Session["lastname"] = null;
Session["username"] = null;
答案 2 :(得分:0)
是的,它会销毁存储在Session对象中的所有对象并释放它们的资源。