HttpContext.Current null innerhalb einer asynchronen Aufgabe
Ich habe eine Methode, die ein Repository verwendet (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;
}
DasuserRepo
Objekt hat eine Abhängigkeit, die verwendetHttpContext.Current
. Beides wird mit ninject gelöstInRequestScope
.
Die obige Methode wird standardmäßig aufgerufenAccountController
in MVC 5:
var result = await IdentityManager.Users.CreateLocalUserAsync(user, model.Password);
Ich habe versucht, diese Einstellung zu web.config hinzuzufügen:
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
Außerdem benutze ich definitiv .NET 4.5. Dies ist auch in meiner web.config:
<httpRuntime targetFramework="4.5" />
Es ist nicht möglich, die Informationen von der zu erhaltenHttpContext
bevor ich die aufgabe beginne ist da eine abhängigkeit von deruserRepo
In der Aufgabe wird die Information verwendet und beide Objekte werden mit Ninject aufgelöst.
Wie kann ich das sicherstellen?HttpContext.Current
wird nicht null sein?