2010-11-02 136 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是可行的,尽管我 '喜欢':第二个,因为它稍微的 '清洁'

刚一些想法! :)