ASP.NET Session_End事件未触发

我正在尝试在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也不会被触发.

希望这可以帮助!

Ť

点赞