c#mvc似乎有个坑,关于第一次请求服务器记录session失效

,如果你进行登录,

,登录成功,它记录了session,

但如果web程序,是刚编译完启动(或重启可能也一样,)

它会因为是第一次记录session,而无效,(第一次以后,好像都挺正常的)

比如,你登录时,

在控制器,里,HttpContext.Session进行了赋值,得赋值完,获取值,都是正常的,

然后,你跳到另一个页面,那个页面需要检查session,却惊奇的发现,session没了

 

,于是你再登录一遍,

也是控制器里,对HttpContext.Session进行了赋值,

跳到另外一个页面,检查session,却有了,

 

然后,再操作,把session删掉,再登录,还是有session了,,,,第一次以后,session就按原有思路来存在与消失了,

 

微软,你要这样,我还能说什么呢,

 

没办法,最后找找找,Global里,试了,

Application_Start()

Application_BeginRequest()

不行,人空还没初始化session,有时连HttpContext.Current也是null

最后在

protected void Session_Start(Object sender, EventArgs e)

外加一个第一次执行标志,  bool isfirst = false;

 

代码如:


bool isfirst = false;
protected void Session_Start(Object sender, EventArgs e) {
if (isfirst) return;
HttpContext.Current.Session["s"] = 0;
isfirst = true;
HttpContext.Current.Session.Remove("s");
}

 

----------整个世界,终于安静了,

posted @ 2017-08-26 10:44  以函  阅读(261)  评论(0编辑  收藏  举报