Ninject Scope-Problem mit Aufgaben / Threads

Ich habe ein MVC3-Projekt, das Ninject, Entity Framework und das Unit of Work-Muster mit einer Service-Schicht verwendet.

Meine AsyncService-Klasse verfügt über eine Funktion, die eine Hintergrundaufgabe startet, mit der beispielsweise Benutzer zum Benutzerrepository hinzugefügt werden. Mein aktuelles Problem ist, dass die Aufgabe nur ein paar Sekunden lang korrekt ausgeführt wird, bevor ich eine Fehlermeldung erhalte, dass der DbContext entsorgt wurde. Mein Datenbankkontext, in den Ninjects InRequestScope () injiziert wurde, scheint entsorgt zu werden, da InRequestScope () ihn an HttpContext bindet.

Ich habe über InThreadScope () gelesen, bin mir jedoch nicht sicher, wie ich es in meinem MVC-Projekt richtig implementieren soll.

Meine Frage lautet: Wie verwende ich Ninject in meiner Aufgabe richtig?

public class AsyncService
{
    private CancellationTokenSource cancellationTokenSource;
    private IUnitOfWork _uow;
    public AsyncService(IUnitOfWork uow)
    {
        _uow = uow;
    }
    public void AsyncStartActivity(Activity activity)
    {
    ...snip...
        this.cancellationTokenSource = new CancellationTokenSource();
        var cancellationToken = this.cancellationTokenSource.Token;
        var task = Task.Factory.StartNew(() =>
            {
                foreach (var user in activity.UserList)
                {
                    this._uow.UserRepository.Add(new User() {UserID = user});
                }
                this._uow.Save();
            }, cancellationToken);
     ...snip...
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage