2010-11-02 166 views
0

在我的應用程序中,用戶上傳電影和電影的大小可能在100MB或更多。出於這個原因,我懷疑如果任何用戶連接速度慢,可能需要幾個小時,如果需要這麼多時間,那麼我的應用程序會話將過期。我該怎麼做才能解決這個問題?我的應用程序是ASP.Net MVC2用C#和Windows Server 2008ASP.Net中的會話超時問題MVC

+1

只是一個建議......我認爲標題應該包括.NET MVC2而不是C# – 2010-11-02 13:20:55

+0

菲爾 - 改變建議! – 2010-11-02 16:05:40

回答

0

FRAZ,

,如果你在你的應用程序或沒有啓用JavaScript的,我不知道主辦。如果你這樣做,你會直到影片已成功地上傳引發的setInterval方法(即在上傳完成後,觸發$ AJAX功能齊全停止時間

反正這裏是粗略的想法:

JavaScript的 - 所謂的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?" /> 

在圖像補償勒特功能,添加:

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"); 
} 

則該頁面內,有獲取與在設定的間隔的partialview(UpdateInProgress)更新一個div。當然,可能會更新整個頁面,而不僅僅是謹慎的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是可行的,儘管我 '喜歡':第二個,因爲它稍微的 '清潔'

剛一些想法! :)