Я получал HttpContext.Current как null внутри метода, который вызывается внутри фабрики задач. Поэтому я присвоил HttpContext.Current переменной currentContext. Затем я использовал одну и ту же переменную для назначения HttpContext.Current.Правильно ли назначать HttpContext.Current внутри фабрики задач?
var currentContext = HttpContext.Current;
Task shipmentCreationCompleted = Task.Factory.StartNew(() =>
{
HttpContext.Current = currentContext;
MethodToPerformSomeAction();
});
В настоящее время он работает нормально, без проблем. Пожалуйста, дайте мне знать, если у моего кода есть какие-либо проблемы технически. Или есть альтернативный способ справиться с этой проблемой?
Передайте HttpContext на фабрику задач в качестве параметра, тогда вы всегда будете использовать тот же HttpContext, что и вызывающий метод. – alikuli
Спасибо alikuli. Какая разница, если я использую это? –
Вы будете использовать ту же ссылку на запрос, который использует вызывающая задача. Нет несовместимости. В основном это инжекция параметров. Поскольку ваш метод работает, возможно, этот метод тоже хорош, но так много всего происходит в многопользовательских средах, что я увереннее передать ссылку на HttpContext и использовать его. таким образом я всегда ЗНАЮ животное, с которым я имею дело. – alikuli