2010-11-02 2 views
0

В моем приложении пользователи загружают фильмы и размер фильмов могут быть около 100 МБ или больше. По этой причине я сомневаюсь, что если какой-либо пользователь имеет медленное соединение, это может занять несколько часов, и если это займет так много времени, мой сеанс приложения будет истек. Что я должен сделать, чтобы удовлетворить эту проблему? Моя заявка на ASP.Net MVC2 с C# и размещен на сервере Windows 2008Проблема с тайм-аутом сеанса в ASP.Net MVC

+1

Просто предложение ... Я думаю, что заголовок должен включать в себя .NET MVC2, а не C# –

+0

Фил - изменение сделано, как предложено !! –

ответ

0

Fraz,

Я не знаю, если у вас есть Javascript включен в вашем приложении или нет. . Если вы это сделаете, вы могли бы вызвать setInterval метод пока фильм не успешно загружен (т.е. по завершению загрузки, вызвать $ Аякса полной функции, чтобы остановить время

во всяком случае, вот грубая идея:

Javascript - называется внутри функции яваскрипта загрузки:

function keepMeAlive(imgName) { 
    myImg = document.getElementById(imgName); 
    if (myImg) myImg.src = myImg.src.replace(/\?.*$/, '?' + Math.random()); 
} 
callbackID = window.setInterval("keepMeAlive('keepAliveIMG')", 100000); 

HTML (только любое старое изображение в документе):

<img id="keepAliveIMG" width="1" height="1" src="http://www.some.url/someimg.gif?" /> 

в макет Функция Lete, добавьте:

clearInterval(callbackID); 

также см:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=453&AspxAutoDetectCookieSupport=1

вы могли бы с курса добавить заголовки к действию, что вы 'хит', когда вы загружаете фильм. т.е. вдоль линий (* оговорке - не тестировалось * !!):

// don't know what your action signiture is like 
public ActionResult AddMovie() 
{ 
    Response.AddHeader("Refresh", Convert.ToString(((Session.Timeout * 60) - 10))); 
    return PartialView("UpdateInProgress"); 
} 

затем внутри страницы, есть DIV, который обновляется с PartialView (UpdateInProgress) на заданном интервале. Конечно, возможно, обновит всю страницу, а не только дискретный div, но вы, надеюсь, сможете получить представление о возможностях.

см:

http://tech.tiffanyandjeremy.com/Articles/Reusable-embedded-keep-session-alive-with-HtmlHelper-for-ASP-NET-MVC-1-0-csharp

или:

http://naspinski.net/post/Automatically-refresh-your-users-Session-behind-the-scenes-using-jQuery-and-AspNet.aspx

либо appraoch жизнеспособна, Тхо я 'предпочел' 2-й один, как это немного 'чище'

просто несколько идей! :)