Я использую EF6, MVC 5 в VS 2013. У меня длинная работающая задача, которая вызывает ошибки таймаута, и поэтому я хочу настроить ее как отдельную фоновое задание и вернуть немедленно к веб-контроллеру. Фоновая задача будет сообщать о прогрессе в базе данных SQL-сервера. Мне нужно, по существу, пожара и забыть функциональность. Там, как представляется, несколько вариантов:Как создать многолетнюю фокусную задачу из MVC
- Пишут задачи детали к серверу и использовать службу Windows, чтобы обработать их UPDATE: это опции, используемые
- Использование
async
- это не кажется, безопасный вариант - Использование HostingEnvironment.QueueBackgroundWorkItem Метод
Вариант 3 будет предпочтительным, поскольку он сохраняет весь код в одном решении. Пожалуйста, не могли бы вы прокомментировать плюсы и минусы каждого и указать, если это возможно, наработанные примеры номера 3.
Или [ASP.NET долго работающая задача. Тема прерывается исключение] (http://stackoverflow.com/questions/16254567/asp-net-long-running-task-thread-is-being-aborted-exception), [Как реализовать очень долгую фоновую задачу в приложении Asp WebAPI] (http://stackoverflow.com/questions/21153329/how-to-implement-a-very-long-running-background-task-in-asp-webapi-application), [Длинные задачи - Best Practice - ASP.NET 4.0, C#] (http://stackoverflow.com/questions/9577112/) и т. Д. Напечатайте «asp.net long running task» в своей любимой поисковой системе и идите читать, почему вы хотите вариант 1. – CodeCaster
@CodeCaster благодарит. Я написал это как службу Windows. С тех пор он работает спокойно и эффективно. –
спасибо, приятно слышать. – CodeCaster