原因:是这样的,我用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。很不稳定。
请各位大虾指教,不甚感激。告诉我为什么?
楼主可以试试在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"
/>
在服务-》asp.net状态服务,你启动下应该就可以了
(1) 你按了 Ctrl + F5,但又在浏览页面时,改过源代码,就有可能遗失 session (常常会,但非一定)。
(2) 避免 ASP.NET 的使用者仅短时间闲置,即被强制 Logout
http://www.cnblogs.com/WizardWu/archive/2009/03/06/1256907.html
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="30"
/>
用form表单认证感觉更好.session处理需要自己考虑很多事情.
1.web.config:
<sessionState timeout="60" mode="StateServer"/>
2.在服务-》asp.net状态服务,你启动下
mark...
<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存储啊..本来,你用的那个确实不是很稳定,虽然理论上是可以的。