首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

公布到服务器里的SESSION老是丢失

2013-09-09 
发布到服务器里的SESSION老是丢失我登录后台时,进行信息的修改,但是进行编辑的时候,点击保存时它就告诉我,

发布到服务器里的SESSION老是丢失

我登录后台时,进行信息的修改,但是进行编辑的时候,点击保存时它就告诉我,请登录,估计是SESSION为空了,
但是我在登录的页面中,验证通过后设置了它的过期时间为20分钟
我在每个页面中的加的语句是

 protected void Page_Load(object sender, EventArgs e)
    {

        if (Session[""] == null)
        {
            //弹出消息框,请登录公布到服务器里的SESSION老是丢失
        }
        else
        {
            if (!IsPostBack)
            { 
            //加载信息或其它
            }
        }
        
    }

[解决办法]
我不推荐用session来控制,占用服务器资源。
refer: http://blog.csdn.net/agaric717/article/details/6531385
[解决办法]
你可以将Session["user"]保存在模板页的类的成员变量中,然后所有页面都继承模板页,在子页面中用成员变量名就可以了,这样非常方便。
[解决办法]
最好的做法是不用session用cookie自己实现

其次的话可以考虑存到sql server或者用memcached
[解决办法]

引用:
[b]
我登录后台时,进行信息的修改,但是进行编辑的时候,点击保存时它就告诉我,请登录,估计是SESSION为空了,
但是我在登录的页面中,验证通过后设置了它的过期时间为20分钟

过期时间是20分钟又怎么了呢?

我们通常讨论在InProc模式下asp.net会丢失Session集合等等数据,而不是过期。
[解决办法]
我曾遇到和你一样的问题,你应该用的是默认InProc 模式,这种模式很容易丢失session信息,让人大为光火,后来改用StateServer模式,这世界马上又那么美好了

参见 http://blog.csdn.net/cityhunter172/article/details/727743
[解决办法]
“丢失”而不是“过期”。

许多人在这个问题上都是在不断重复“过期时间20分钟”,那是很无厘头的(貌似相关但是其实无关的)。


[解决办法]
stateserver正解.. 在asp.net_state服务中

 如果没意外 是不会发生过期 的情况的
[解决办法]
嗯,应该是丢失了

热点排行