Ajax轮询中的C#会话超时问题

时间:2018-11-28 06:24:02

标签: c# jquery ajax asp.net-mvc-4 ajax-polling

我的应用程序中有ajax轮询,它检查一些关键数据是否已进入数据库。现在,我的应用程序已将超时设置为30分钟,该超时设置在除存在ajax轮询的页面之外的所有其他页面上均能完美运行。它在该页面上没有超时,因为它具有连续轮询

我不能使用

[SessionState(SessionStateBehavior.Disabled)]

针对该特定操作,因为它从会话中获取了一些数据(例如,用户ID)

我也尝试在Javascript中使用setInterval

 var sessionTimeout = (@Convert.ToInt32(HttpContext.Current.Session.Timeout)+1) * 60000
    var sessionTimeoutInterval;

    function startSessionInterval() {
        sessionTimeoutInterval = window.setInterval(
            function () {
                ptc_session_helper.IsSessionAlive('@Url.Action("IsSessionEx", "Session")', '@Url.Action("SignOut", "AccountName")')
            }, sessionTimeout);
    }

    function clearSessionInterval()
    {
        clearInterval(sessionTimeoutInterval);
    }
    startSessionInterval()

    //Reset Timer
    $(document).ajaxComplete(function () {
        clearSessionInterval();
        startSessionInterval();
    });

仍然无法正常工作。

还有其他方法吗?

0 个答案:

没有答案