首页 新闻 赞助 找找看

Session不定时超时

0
悬赏园豆:20 [已解决问题] 解决于 2009-03-17 18:01

原因:是这样的,我用Session记录用户登录的ID,如Session["UserID"] = “从数据库中读取的用户

ID”,那我当然用它去判断了
If(Session["UserID"] == null)
{
    Response.Redirect("Login.aspx");//如果用户没登录了就返回登录页
}
但我发现我没显式的释放Session,过一会或者我刷新几次本页,就自动把我踢到Login.aspx,我想

是Session超时了,
可我在IIS里设置的是30分钟,在Web.config里设置的也是设置了很长时间如 “<sessionState

timeout="600"></sessionState>”
那杂有时候没几分钟就被转到Login.aspx,有时过半个多小时才被踢到Login.aspx。很不稳定。
请各位大虾指教,不甚感激。告诉我为什么?

David.Meng的主页 David.Meng | 初学一级 | 园豆:10
提问于:2009-03-16 23:09
< >
分享
最佳答案
0

楼主可以试试在web.config中设置一下session的保存方式:

<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="30"
/>

I,Robot | 大侠五级 |园豆:9783 | 2009-03-16 23:53
其他回答(7)
0

在服务-》asp.net状态服务,你启动下应该就可以了

谦虚的天下 | 园豆:205 (菜鸟二级) | 2009-03-17 08:49
0

(1) 你按了 Ctrl + F5,但又在浏览页面时,改过源代码,就有可能遗失 session (常常会,但非一定)。

(2) 避免 ASP.NET 的使用者仅短时间闲置,即被强制 Logout

http://www.cnblogs.com/WizardWu/archive/2009/03/06/1256907.html

WizardWu | 园豆:1402 (小虾三级) | 2009-03-17 08:53
0

<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="30"
/>

子夜星辰 | 园豆:1613 (小虾三级) | 2009-03-17 09:01
0

用form表单认证感觉更好.session处理需要自己考虑很多事情.

波波塔 | 园豆:638 (小虾三级) | 2009-03-17 09:34
0

1.web.config:
  <sessionState timeout="60" mode="StateServer"/>
2.在服务-》asp.net状态服务,你启动下

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2009-03-17 09:51
0

mark...

Jared.Nie | 园豆:1940 (小虾三级) | 2009-03-17 11:17
0

<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="30"
/>

在服务-》asp.net状态服务,你启动下应该就可以了

应该可以解决你的这个问题..

或者你可以换其他的方式..sqlserver存储啊,..cokkie存储啊..本来,你用的那个确实不是很稳定,虽然理论上是可以的。

邢少 | 园豆:10926 (专家六级) | 2009-03-17 11:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册