在asp.net项目上运行计时器

时间:2017-05-03 06:18:30

标签: asp.net timer counter global-asax

我有项目,我有Global.asax个文件。 我有几个像Application_Start设置会话计数器的方法,Session_Start增加会话,Session_End减少会话,Application_End打印会话' s计数器。

我想每小时打印一个计数器,以便我的代码:

    protected void Application_Start(object sender, EventArgs e)
    {
        Application["LiveSessionsCount"] = 0;

        Timer aTimer = new System.Timers.Timer(1 * 60 * 1000); //one hour in milliseconds
        aTimer.Elapsed += new ElapsedEventHandler(LogCounterForSessions);
    }

    private void LogCounterForSessions(object source, ElapsedEventArgs e)
    {
        Logger.ForceWrite("LogCounterForSessions: " + DateTime.Now.ToString("H:mm:ss") + " - session's count: " + (int)Application["LiveSessionsCount"]);
    }

我的问题是没有日志(因此我缩短了时间,但没有写日志)。当应用程序结束时,日志可以正常工作。

有什么建议,为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

我需要通过编写

来启动它
aTimer.Enabled = true;