在.net中,session中传递到某个页面,过一段时间后会马上丢失,提示重新登录.
我在页面中用session传递登录成功的user变量,可页面打开后过一段时间,页面接收不到user变量,提示重新登录.请各位高手明示.这是什么问题.是不是页面定期会将session的值清空. --------------------编程问答-------------------- 有很多种情况最有可能的是自动垃圾回收,或者应用程序池中内存不够,导致程序重启动,W3wp程序自动重启 --------------------编程问答-------------------- 建议楼主贴出代码... --------------------编程问答-------------------- 请检查Web.config文件中的配置,其中timeout="50"是多少。
<!-- 会话状态设置
默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 Cookie,请设置 sessionState cookieless="true"。
-->
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="true" timeout="50"/>
--------------------编程问答-------------------- Session与IIS在同一进程内,是不太稳定的,Session丢失发生相对比较频繁。
可以通过改变Session保存的机制来解决。
具体做法是修改Web.Config文件sessionState配置节,设置Mode为StateServer或SQLServer,同时要设置StateServer的IP和端口,或者SQL Server的连接字符 --------------------编程问答-------------------- //判断当前用户是否合法登录
cUserid = Convert.ToString(Session["cLoginid"]).Trim();
//接收的操作员
if (cUserid == "")
{
Response.Write(bc.MessageBox("你还未登录,请先登录."));
Response.Write("<script language=javascript>location.href='../login.aspx'</script>");
}
备注:bc为一个自定义class --------------------编程问答-------------------- 可以通过更改web.config中的timeout改变现状,但是也有可能是服务器的问题……
但是很少会碰到这种事情吧…… --------------------编程问答-------------------- session是有个时间限制的,,过了时间session变量就消除了
补充:.NET技术 , ASP.NET