我最近遇到了一个ASP 1.1 Web应用程序,它在会话变量中放入了大量内容 – 包括所有数据库数据对象甚至数据库连接对象.它最终变得巨大.当Web会话超时(用户使用完应用程序四小时后),有时会回滚其数据库事务.我假设这是因为当IIS终止会话时,数据库连接没有正确关闭.
无论如何,我的问题是会话变量应该是什么?显然有些事情需要在那里.用户在主屏幕上选择要编辑的计划,因此计划ID将进入会话变量.通过存储有关用户(及其管理员等)的所有详细信息以及他们在会话变量中编辑的计划来尝试减少数据库的负载是否更好?或者我应该尝试最小化会话变量中的内容和在Page_Load事件中查询数据库中我需要的所有内容?
解决方法
@H_403_7@ 这很难回答,因为它是特定于应用程序的,但这里有一些我使用的指南:>尽可能少地参加会议.
>仅在给定访问期间应该持续的用户特定选择是一个不错的选择
>通常,在整个用户访问您的站点时需要访问多个页面的变量(以避免在页面之间传递它们)也很适合放入会话中.