我把这两个网站分别用A和B来代替,好区分.前些天做了个网站(称为A),在后台想用Session保存登录用户名,不知为何在登录后的页面取Session值一直为空,后来我又重新新建了一个项目网站(称为B),把原来的文件全部导入,这次一试,居然可以取到Session的值了,以为问题解决,后来发现数据库地址是A程序的数据库地址,没有改(我直接把数据库路径地址写死了),后来我把数据库改为现在的B程序路径,Session居然又变成空值了,取不到,我把数据库路径重新改回A的地址,Session又可以用了,我就纳闷这个Session跟数据库路径有什么关系?我又试着打开A的程序,原来Session不能用,我以为是什么地方我改动了,所以才又重新建的B程序.打开A后,把数据库地址设成B的数据库路径,在后台测试登陆,Session居然也可以用了,我就纳闷为什么在自己程序目录不能用.我用的是ACCESS数据库,在BIN目录里边存放.请各位朋友帮帮忙,看我这是哪的问题,以前从来没有碰到过

解决方案 »

  1.   

    原因如下:
    你在登录后肯定修改了数据库,往里面加入了数据。也就是意味着bin目录下的*.mdb文件发生了改变,在这种情况下,AppDomain会发生recycle,通俗讲就是应用程序重启,导致了session全部丢失。建议你把数据库文件放到别的目录里面去。
    这也正是为什么你连接A网站的数据库就不会出现问题的原因,因为B网站下的bin目录并没有变化。你看一下这篇文章里面我的回复:http://topic.csdn.net/u/20090205/18/8564e22d-9e22-4348-acad-5dd9743cde5c.html
    那里描述了其它几种AppDomain recycle的情况。
      

  2.   

    楼主写得这么乱,看起来真头痛,我代劳整理下:我把这两个网站分别用A和B来代替,好区分.前些天做了个网站(称为A),在后台想用Session保存登录用户名,不知为何在登录后的页面取Session值一直为空,后来我又重新新建了一个项目网站(称为B),把原来的文件全部导入,这次一试,居然可以取到Session的值了,以为问题解决,后来发现数据库地址是A程序的数据库地址,没有改(我直接把数据库路径地址写死了),后来我把数据库改为现在的B程序路径,Session居然又变成空值了,取不到,我把数据库路径重新改回A的地址,Session又可以用了,我就纳闷这个Session跟数据库路径有什么关系?我又试着打开A的程序,原来Session不能用,我以为是什么地方我改动了,所以才又重新建的B程序.打开A后,把数据库地址设成B的数据库路径,在后台测试登陆,Session居然也可以用了,我就纳闷为什么在自己程序目录不能用.我用的是ACCESS数据库,在BIN目录里边存放.请各位朋友帮帮忙,看我这是哪的问题,以前从来没有碰到过