我正在使用一些会话,这些会话应该在用户完成时终止。我偶然发现了这三个会话杀手。什么时候是使用它们的最佳时机,因为我使用会话的时间比不使用会话的时间要长。另外,有没有其他我不知道的会话终止?
发布于 2010-08-24 04:35:41
Session.Clear
和Session.RemoveAll
是相同的;后者只是调用前者。它们会立即删除会话中存储的所有项,但会话本身仍然存在。Session_OnEnd不会触发。
Session.Abandon
实际上并不会立即清除这些值,它只是将会话标记为在当前请求结束时放弃。您可以继续读取请求的其余部分的值。如果稍后在请求中写入会话,新值将在请求结束时悄悄丢弃,不会出现任何警告。Session_OnEnd在请求结束时触发,而不是在调用放弃时触发。
发布于 2010-08-24 03:58:09
Session.Clear
不会终止会话,它会清除所有值。Session.Abandon
实际上会终止会话。
看起来大部分问题都在这里解决了:In ASP.NET, when should I use Session.Clear() rather than Session.Abandon()?
发布于 2014-02-25 22:58:51
这里有点晚了,但我想分享@stevemegson是正确的证据,因为Session.RemoveAll
内部调用了Session.Clear
public void Clear()
{
this._container.Clear();
}
public void RemoveAll()
{
this.Clear();
}
所以这两者完全没有区别
和session.Abandon
调用
public void Abandon()
{
this._container.Abandon();
}
它主要做的是:)..
public void Abandon()
{
this._abandon = true;
}
https://stackoverflow.com/questions/3551178
复制相似问题