Предотвращение задержки браузера в приложении mvc3 в течение длительного времени обработки - PullRequest
0 голосов
/ 14 марта 2012

MVC3 vb.net. В моем приложении у меня есть точка, где более 500 электронных писем с вложениями отправляются с использованием для каждого цикла, чтобы выполнить это .. Ничто не возвращается в браузер все время, пока это выполняется, поэтому в конечном итоге браузер считает, что время истекло Я пытался просто перенаправить его в другую функцию actionresult после каждого электронного письма, и эта функция просто передает его обратно в функцию электронной почты. Это не работает, и я чувствую, что причина в том, что на самом деле ничего не отправляется в само окно браузера. Есть ли способ решить эту проблему ??

   If _keepAlive = 1 Then
                RedirectToAction("keepAlive", "Email")
   End If

    Function keepAlive() As ActionResult
        Return RedirectToAction("SendClassSchedules", "Email")
    End Function

Ответы [ 3 ]

1 голос
/ 14 марта 2012

Вы можете попробовать асинхронное действие и установить для тайм-аута большое значение:

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/

0 голосов
/ 14 марта 2012

Вы говорите об этом? http://msdn.microsoft.com/en-us/library/ms525473(v=vs.90).aspx

Я думаю, вы могли бы изменить Session.Timeout, чтобы лучше удовлетворить ваши потребности ..

0 голосов
/ 14 марта 2012

В прошлом мы успешно запускали фоновый поток для выполнения обработки, а затем настраивали страницу на самообновление раз в секунду - с каждым обновлением, сообщающим о прогрессе.Я полагаю, что если бы я делал что-то подобное сегодня, я бы использовал метод страницы и вызов javascript ajax, чтобы обновить страницу с прогрессом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...