程序配置文件:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="1000"
/>但有时6,7分钟就失效了,需要重新登陆。
有时一重新登陆,所有的人都要重新登陆。请问:怎样设置session在7,8小时之内都不超时呢?
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="1000"
/>但有时6,7分钟就失效了,需要重新登陆。
有时一重新登陆,所有的人都要重新登陆。请问:怎样设置session在7,8小时之内都不超时呢?
iis中设置了1000分钟,就变成了有时6,7分钟就失效了,需要重新登陆。
谁告诉我要怎么弄?
如果可以的话 建议楼主用cookie 吧
我一直做c/s的。
真不知道怎么办?
把时间设到最大DateTime.MaxValue
程序里面好多地方都是用session if (Session["RowFilter_T_BG_Bgdj"] != null)
{
filter = Session["RowFilter_T_BG_Bgdj"].ToString();
}
if (Session["Sort_T_BG_Bgdj.Column"] != null && Session["Sort_T_BG_Bgdj.Direction"] != null)
{
order = Session["Sort_T_BG_Bgdj.Column"].ToString() + " " + Session["Sort_T_BG_Bgdj.Direction"].ToString();
} # region HandCode_LoadData2
# endregion Session["DT_T_BG_Bgdj"] =
DAL.BG.T_BG_Bgdj.GetTopDT(1000, filter, order);
Session["DTCount_T_BG_Bgdj"] = DAL.BG.T_BG_Bgdj.GetDTCount(null);
Session["ViewCount_T_BG_Bgdj"] = DAL.BG.T_BG_Bgdj.GetDTCount(filter);
DAL.BG.T_BG_Bgdj.GetTopDT(1000, filter, order);
这些也都用cookie吗?
那我只有改咯。哎`` 公司就我一个程序员,还是个女孩子。
当SESSION丢失的时候去访问COOKIE来刷新SESSION.
有点多余.还不如直接用COOKIE
除非用户关浏览器
一个成本比较低,改动比较快的方法是:页面上嵌入一个iframe,设置其size和width,height=0,也就是说对用户不可见
里面挂一个小页面(这个页面主要是保持一个状态的激活,用简单的代码段即可),设置为自动刷新。
如
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="refresh" content="5">
每5秒刷新一下自己,这样可以保证session一直是激活状态。当然,用户如果关闭了窗口那么肯定就无效了。
另外因为是因为增加了对服务器的请求,也需要综合考量
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="1000" />