HttpContext.Current null внутри асинхронной задачи
У меня есть метод, который использует хранилище (userRepo
):
public override Task<IdentityResult> CreateLocalUserAsync(IUser user, string password, CancellationToken cancellationToken)
{
var task = new Task<IdentityResult>(() => {
TUserEntity newUser = new TUserEntity
{
Id = user.Id,
UserName = user.UserName,
Password = password
};
userRepo.Save(newUser).Flush();
return new IdentityResult(true);
}, cancellationToken);
task.Start();
return task;
}
userRepo
объект имеет зависимость, которая используетHttpContext.Current
, Оба из них решаются с помощью ninjectInRequestScope
.
Вышеуказанный метод вызывается внутри по умолчаниюAccountController
в Mvc 5:
var result = await IdentityManager.Users.CreateLocalUserAsync(user, model.Password);
Я попытался добавить этот параметр в web.config:
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
Кроме того, я определенно использую .NET 4.5. Это также в моем web.config:
<httpRuntime targetFramework="4.5" />
Невозможно получить информацию отHttpContext
прежде чем начать задание, потому что зависимость отuserRepo
В задании используется информация, и оба объекта решаются с помощью Ninject.
Как я могу гарантировать, чтоHttpContext.Current
не будет нулевым?