ASP.NET会话死了吗?

时间:2014-09-12 04:10:24

标签: asp.net session

我在AWS Free Tier上运行了一个ASP.NET 4.0应用程序。我遇到的问题是会话一直在奄奄一息。

我在System.Web中包含以下内容:

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

我用Javascript&#34; Session Bump&#34;支持该声明。主页中的方法也是每10分钟执行一次:

var sessionBump = setInterval(bumpSession, 600000);
    function bumpSession() {
        $.get("/admin/secure/ajax/keepalive.aspx", function (data) {
            // do nothing, just keep the session alive
        });
    }

昨晚测试时,会议在大约2-2.5小时后仍然存在,但是当我离开应用程序过夜(好吧,6小时)后,会话已经死亡。为什么它不会活着?我需要它,因为用户在12小时轮班时偶尔使用该应用程序。

此致

鲍勃

1 个答案:

答案 0 :(得分:0)

您必须使用ResolveUrl:

function KeepSessionAlive() 
{
    $.get(ResolveUrl('~/KeepSessionAlive.ashx'), function (data) { });
}

$(function () {
    setInterval(KeepSessionAlive, 300000); //5 minutes (call before session timeout - if timeout= 6)
});


function ResolveUrl(url)
{
    if (url.indexOf("~/") == 0) 
    {
        url = baseUrl + url.substring(2);
    }
    return url;
}

//或包含在母版页

<script type="text/javascript">
    var baseUrl = '<%= ResolveUrl("~/") %>';
    function ResolveUrl(url) {
        if (url.indexOf("~/") == 0) {
            url = baseUrl + url.substring(2);
        }
        return url;
    }
</script>