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