В моем приложении пользователи загружают фильмы и размер фильмов могут быть около 100 МБ или больше. По этой причине я сомневаюсь, что если какой-либо пользователь имеет медленное соединение, это может занять несколько часов, и если это займет так много времени, мой сеанс приложения будет истек. Что я должен сделать, чтобы удовлетворить эту проблему? Моя заявка на ASP.Net MVC2 с C# и размещен на сервере Windows 2008Проблема с тайм-аутом сеанса в ASP.Net MVC
ответ
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, но вы, надеюсь, сможете получить представление о возможностях.
см:
или:
либо appraoch жизнеспособна, Тхо я 'предпочел' 2-й один, как это немного 'чище'
просто несколько идей! :)
Просто предложение ... Я думаю, что заголовок должен включать в себя .NET MVC2, а не C# –
Фил - изменение сделано, как предложено !! –