人
人生如路
Unregistered / Unconfirmed
GUEST, unregistred user!
1、问题来源
在保存会话状态和不同页面间交换的数据时,我们没有用Sesstion、Application等对像,而是自己另外写了一个与Sesstion工作类似的“列表类”,里面每一个项目用一个Key去访问它,每一个项目是一个Object,这样,我们的“列表类”中就可以保存任何的数据类型。
当然,“列表类”中的KEY要求必须要是唯一的,所以,我们就采用了Session ID来作为“列表类”的Key。
我们在UI端,采用了“模板视图”的模式,通在生成了Page类的子类,来定义每一个页面中大部分重复的动作,比如,在装入页面以后,要判断用户使用软件的许可、使用模块的权限,所以,我们在实现“模板视图”时,便先取得当前的Sesstion ID,再去查找服务器进程中的那个“列表类”,就得到当前会话的所有状态信息;
2、问题产生
上述做法,产生了如下两个问题:
A、经常会出现用户登录以后断线的情况,经测试,发现是因为在打用新的IE窗口时,IIS产生了一个新的Session ID;
B、在列表类中保存的对像(比如向导界面中不同的页面之间的数据、Dataset对象实例、DataTable实例等),在何时释放?Sesstion End事件中,好像是不可能的;
===============
问题如上所述,有请高人指点。
在保存会话状态和不同页面间交换的数据时,我们没有用Sesstion、Application等对像,而是自己另外写了一个与Sesstion工作类似的“列表类”,里面每一个项目用一个Key去访问它,每一个项目是一个Object,这样,我们的“列表类”中就可以保存任何的数据类型。
当然,“列表类”中的KEY要求必须要是唯一的,所以,我们就采用了Session ID来作为“列表类”的Key。
我们在UI端,采用了“模板视图”的模式,通在生成了Page类的子类,来定义每一个页面中大部分重复的动作,比如,在装入页面以后,要判断用户使用软件的许可、使用模块的权限,所以,我们在实现“模板视图”时,便先取得当前的Sesstion ID,再去查找服务器进程中的那个“列表类”,就得到当前会话的所有状态信息;
2、问题产生
上述做法,产生了如下两个问题:
A、经常会出现用户登录以后断线的情况,经测试,发现是因为在打用新的IE窗口时,IIS产生了一个新的Session ID;
B、在列表类中保存的对像(比如向导界面中不同的页面之间的数据、Dataset对象实例、DataTable实例等),在何时释放?Sesstion End事件中,好像是不可能的;
===============
问题如上所述,有请高人指点。