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;
    }

DasuserRepoObjekt 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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage