我最近遇到了一个ASP 1.1 Web应用程序,它在会话变量中放入了大量内容 – 包括所有数据库数据对象甚至数据库连接对象.它最终变得巨大.当Web会话超时(用户使用完应用程序四小时后),有时会回滚其数据库事务.我假设这是因为当IIS终止会话时,数据库连接没有正确关闭.
无论如何,我的问题是会话变量应该是什么?显然有些事情需要在那里.用户在主屏幕上选择要编辑的计划,因此计划ID将进入会话变量.通过存储有关用户(及其管理员等)的所有详细信息以及他们在会话变量中编辑的计划来尝试减少数据库的负载是否更好?或者我应该尝试最小化会话变量中的内容和在Page_Load事件中查询数据库中我需要的所有内容?