Я пытаюсь запустить длительный процесс в контроллере MVC, а затем немедленно вернуться к пользователю, чтобы он мог запустить другой длительный процесс. Я хотел бы взглянуть на это через ajax, но мне нужно прочитать некоторые значения с физической машины, прежде чем позволить им продолжить, что занимает менее 0,3 секунды. Единственная проблема состоит в том, что метод в Задаче считывает значения из Сессии, которая больше не доступна. Есть ли способ создать HttpContext, который имеет значения сеанса пользователей для использования с StructureMap?
Ниже приведено задание
System.Threading.Tasks.Task async = new System.Threading.Tasks.Task(() =>
{
var response = service.LongRunningTask(request, weight);
this.requestCache.Insert("someKey", 120, response);
});
async.Start();
И именно здесь происходит ошибка при чтении сеанса (SessionWrap просто читает значение из сеанса)
registry.For<IPrintService>().HybridHttpOrThreadLocalScoped().Use(() =>
{
var profiler = ServiceLocatorManager.Current.Resolve<IProfiler>();
return new PrintService(AppSettings.PrintDirectly, SessionWrap.UseLabelPrinter, SessionWrap.UsePrinter, profiler) as IPrintService;
});