一网站,有时过不了6,7分钟,session失效,就要重新登陆。
而要求是6,7个小时登陆都不能失效。
怎么办呀?我web非常菜。
web.config:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="1000"
/>
程序里还有好多地方用session的。
if (Session["RowFilter_T_BG_Ysd"] != null)
{
filter = Session["RowFilter_T_BG_Ysd"].ToString();
}
if (Session["Sort_T_BG_Ysd.Column"] != null && Session["Sort_T_BG_Ysd.Direction"] != null)
{
order = Session["Sort_T_BG_Ysd.Column"].ToString() + " " + Session["Sort_T_BG_Ysd.Direction"].ToString();
}
Session["DT_T_BG_Ysd"] =
DAL.BG.T_BG_Ysd.GetTopDT(1000, filter, order);
Session["DTCount_T_BG_Ysd"] = DAL.BG.T_BG_Ysd.GetDTCount(null);
Session["ViewCount_T_BG_Ysd"] = DAL.BG.T_BG_Ysd.GetDTCount(filter);
可以设置下Session的保存时间,j就是application的Session TimeOut时间
保存登陆用户信息不用Session,建议用cookie,或者直接用Form验证,其实From验证的原理也是保存的cookie.
mode="InProc" 这个模式有三种,StateServer、还有sqlserver 的。
stateserver状态是把session状态存储在服务器上,当然会消耗一定的性能。
http://blog.163.com/chen6666@126/blog/static/2804367420095230461120/
sqlserver 是把状态信息存储在数据库中,性能消耗更大,不推荐。
推荐用stateserver 。
或者用cookie也可以,用的话就是把session存储到cookie中,当发现session失效的时候,从cookie中得到信息再赋值给session。这个要用到httpModules 。
用cookie保存吧,
有的IIS 对session 做控制
timeout="1000"
是设计时间的