一旦调用 HttpSessionState.Abandon 方法,当前会话不再有效,同时会启动新的会话。Abandon 使 SessionStateModule.End 事件被引发。发送下一次请求后将引发新的 SessionStateModule.Start 事件。
所以,如果在对你ASP.net页面的一次请求中,有类似下面的两行代码:
不论在不在同一个函数中。不论先后顺序。
......
HttpContext.Current.Session.Abandon();
.........
HttpContext.Current.Session["ClientKey"] = "aaaaaaa";
新的页面,你是无法获得 Session["ClientKey"] 的值的.
最近我碰到的一个bug,就是 在一个封装很深的组件中,封装了 HttpContext.Current.Session.Abandon() 方法。造成读不出Session的问题.