MVC3 vb.net。在我的应用程序中,我有一个点,其中500个带附件的电子邮件发送出来,使用for循环来完成此任务。整个运行时没有任何内容返回给浏览器,所以最终浏览器认为它已超时...我尝试在每封电子邮件之后将其重定向到另一个actionresult函数,该函数只是将其传递回电子邮件功能。这不起作用,我觉得原因是实际上没有任何东西被发送到它自己的浏览器窗口..有没有办法解决这个问题??
If _keepAlive = 1 Then
RedirectToAction("keepAlive", "Email")
End If
Function keepAlive() As ActionResult
Return RedirectToAction("SendClassSchedules", "Email")
End Function
答案 0 :(得分:1)
您可以尝试异步操作并将超时设置为较大的值:
http://msdn.microsoft.com/en-us/library/system.web.mvc.asynctimeoutattribute.aspx
http://blogs.claritycon.com/blog/2011/04/12/roll-your-own-mvc-3-long-polling-chat-site/
答案 1 :(得分:0)
过去,我们已成功启动后台线程进行处理,然后将页面设置为每秒刷新一次 - 每次刷新报告进度。我想如果我今天做的那样,我会使用页面方法和javascript ajax调用来更新页面进度。
答案 2 :(得分:0)
我认为您可以更改Session.Timeout
以更好地满足您的需求。