在我的应用程序用户上传电影和电影的大小可以在100MB左右或更多。因此,我怀疑如果任何用户连接速度较慢,可能需要数小时,如果需要花费很多时间,那么我的应用程序会话将会过期。我该怎么做才能解决这个问题?我的应用程序在带有C#的ASP.Net MVC2上,并托管在Windows Server 2008上
答案 0 :(得分: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");
}
然后在页面内部,有一个div,它以设定的间隔用partialview(UpdateInProgress)更新。当然,可能会更新整个页面,而不仅仅是谨慎的div,但你希望能够了解这些可能性。
见:
或:
要么appraoch是可行的,所以我更喜欢'第二个,因为它稍微'清洁'
只是一些想法! :)