我在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小时轮班时偶尔使用该应用程序。
此致
鲍勃
答案 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>