Почему бы не рассмотреть асинхронную обработку запросов, прежде чем переходить к пользовательскому фоновому сервису.
В MVC 3 вы можете довольно легко построить Asynchrouns Controller, реализовав AsyncController
. Иногда, если у нас нет четкого видения того, как действовать и сталкиваться с бесчисленным выбором, повторное использование вкусностей из CLR является лучшим выбором. Асинхронный контроллер использует пул рабочих потоков IIS, преобразуя все тяжелые долгосрочные задачи в фоновые рабочие потоки, освобождая другие потоки и, следовательно, устраняя проблемы с производительностью, которые у вас возникают. С точки зрения кодирования это не так громоздко.
Например, вы можете проверить эту ссылку:
Использование асинхронного контроллера в ASP.NET MVC
Опять же, я предлагаю изучить нативный асинхронный подход MVC, прежде чем искать в другом месте.