我正在尝试在 ASP.NET 会话结束时执行数据库事务(在 Windows 2008 Server 上的简单 WebForms 应用程序中)。我意识到许多受访者会建议不要依赖 Session_End 事件(正如我在谷歌搜索产生的关于这个主题的一百篇论坛帖子中读到的那样)。请幽默我。
我做过这些事情:
在 web.config 中启用会话状态:
<sessionState mode="InProc" cookieless="false" timeout="1" />
确认当我调用 Session.Abandon() 或会话超时时 Session_End 事件不会触发。
确认会话在 1 分钟后超时(如上配置)。
确认我没有尝试访问任何 Request 或 Response 或 Server 对象(我理解这会默默地出错)。
编辑:我还确认我在会话中存储数据——我使用许多会话变量来存储不同的数据点,这些在用户登录到应用程序时被实例化。
编辑:我还确认我没有创建会话,然后在同一个请求中放弃它。如上所述,即使会话超时(即没有发出请求),问题仍然存在。
请帮忙!