【问题标题】:Session_End event is not firingSession_End 事件未触发
【发布时间】:2021-08-30 03:56:06
【问题描述】:

我正在尝试调用一个方法,该方法在我的Session_End 方法中更新数据库表中的一行。 我以这种方式在 web.config 中启用了会话状态:

<sessionState mode="InProc" cookieless="false" timeout="1"/> 

我已经运行了这个程序,一分钟内什么也没做,但我没有看到表格中有任何更新,因此Session_End 方法没有被触发。 有什么想法我可以做什么或为什么没有触发?

这里有一些示例代码

protected void Session_End() 
{
    loguseractivity("logout",userip,serverip);
}

【问题讨论】:

    标签: c# asp.net session session-timeout


    【解决方案1】:

    如果您未在会话中保存任何内容,则不会触发 Session_End 事件。会话中必须至少保存一次内容才能触发 Session_End 事件

    所以在下面的 Session start 中,我将 Hello 保存在 Session_Start 中

    protected void Session_Start(object sender, EventArgs e)
    {
         Session["Movies"] = "Hello";
    }
    

    所以会话结束后,会话结束事件会触发

    【讨论】:

    • 我使用了一些会话变量来存储不同的数据点,这些都是在用户登录应用程序时实例化的。这还不够吗?
    • 你能把你在 web.config 中为配置会话所做的设置发给我吗
    • .....
    • 你在 web.config 中也有这个设置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2010-11-08
    • 2019-01-31
    • 2013-04-09
    • 2015-07-25
    • 2017-06-25
    相关资源
    最近更新 更多