2014-09-12 2 views
0

У меня есть приложение ASP.NET 4.0, работающее на AWS Free Tier. Проблема в том, что сеанс продолжает умирать.сеанс ASP.NET умирает?

Я включил следующие в System.Web:

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

я поддержал это заявление с методом Javascript "Session Bump" в Masterpage, а также, который выполняет каждые 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-часовой смены.

С уважением,

Bob

+1

был ваш еще не спал на клиентской стороне в течение последних 6 часов? –

+1

Существуют ли журналы ошибок на стороне сервера? –

+0

@PhongVo показалось, что он. Экран заснул, но мой Mac еще не спал. –

ответ

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> 
+0

Привет, спасибо, но зачем мне использовать URL-адрес решения? Должна ли регулярная публикация на странице делать трюк? Просто любопытно. –

+0

ResoleURL, чтобы получить относительный путь KeepSessionAlive.ashx. Если вы не останетесь на главной странице, вы не можете позвонить в KeepSessionAlive.ashx (Извините за мой плохой E) –

Смежные вопросы