日期:2014-05-19  浏览次数:20390 次

session存在数据库还是丢失,救命啊。
把session存到数据库了,
配置文件如下:
<sessionState   timeout= "60 "   mode= "SQLServer "     stateConnectionString= "127.0.0.1:42424 "   sqlConnectionString= "Server=(local);   Uid=sa;Pwd=sa "/>

可是还是不定时的丢失,(代码里面没有哪里把session清空的代码),这个丢失不一定在哪个页页,也不是固定的时间的,也不是超时,
有哪位救命啊。

博客园的的资料,和csdn上面所有说的丢失的原因都查过的,还是找不到答案。




------解决方案--------------------
在服务器上,因为存在多个工作进程,所以需要将它的写法改成 mode=StateServer了,否则就会造成前面所说的Session中的值不确定的现象.但是,如果简单地这样改一下,系统又报错说对于以StateServer 或者 SqlServer两种方式保存会话状态,要求对象是可序列化的(大意如此)...所以我们还需要再将对象做一下可序列化声明.

------解决方案--------------------
你的“丢失”是什么概念呢?

你可以根据自己的“丢失”现象,去对所有可能涉及被丢失的变量的操作进行跟踪,使用Trace打印操作过程,或者是写入自己的Log文件中。

当然,这往往说明你滥用了某种对象的操作过程。PM 应该将这种东西重新设计、封装成更为面向领域对象的、很容易从业务领域规则去理解的独立子系统,避免程序员滥用底层的计算机领域的概念和工具去做高层的业务。
------解决方案--------------------
我个人比较怀疑是楼主你的SQL Server的连接池超时没设好导致Session的丢失。你可以试试:
控件面版-管理工具-ODBC-连接池,找到“SQL Server”并设好时间。
------解决方案--------------------
up