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");
}
----------整个世界,终于安静了,