我正在尝试在ASP.NET会话结束时(在
Windows 2008 Server上的简单WebForms应用程序中)执行数据库事务.我意识到许多受访者建议不要依赖Session_End事件(正如我在Google搜索产生的关于此主题的一百个论坛帖子中所读到的那样).请幽默我
我做过这些事:
>在web.config中启用会话状态:< sessionState mode =“InProc”cookieless =“false”timeout =“1”/>
>确认当我调用Session.Abandon()或会话超时时,Session_End事件不会触发.
>确认会话在1分钟后超时(如上所述).
>确认我没有尝试访问任何请求或响应或服务器对象(我理解会默默地出错).
编辑:我还确认我在会话中存储数据 – 我使用多个会话变量来存储不同的数据点,并在用户登录到应用程序时实例化这些数据点.
编辑:我也确认我没有创建会话,然后在同一请求中放弃它.如上所述,即使会话超时(即,没有请求),问题也存在.
请帮忙!
最佳答案 如果您未在会话中保存任何内容,则session_end将不会触发.
如果您在第一个请求中保存会话中的数据,并在同一请求中调用abandon,则session_end也不会被触发.
希望这可以帮助!
Ť