Ich versuche eine variable Anzahl von Benutzern zu erstellen, abhängig von den aktuellen Anforderungen. Dies funktioniert in MVC4 ohne Async. Jetzt, wo MVC6 Async benötigt, erhalte ich Fehler, wenn ich versuche, mehr als 13 Benutzer zu erstellen. Ich bin mit dem Standard RC1 final Account Vorlage:MVC 6 Das Seeding von Benutzern in einer Schleife schlägt immer auf dem 14. Benutzer mit Zugriff auf das Objekt fehl.
[FromServices]
public DecAppContext DecAppContext { get; set; }
private readonly UserManager<ApplicationUser> _userManager;
private readonly SignInManager<ApplicationUser> _signInManager;
private readonly IEmailSender _emailSender;
private readonly ISmsSender _smsSender;
private readonly ApplicationDbContext _applicationDbContext;
private static bool _databaseChecked;
public AccountController(
UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager,
IEmailSender emailSender,
ISmsSender smsSender,
ApplicationDbContext applicationDbContext)
{
_userManager = userManager;
_signInManager = signInManager;
_emailSender = emailSender;
_smsSender = smsSender;
_applicationDbContext = applicationDbContext;
} ...
Ich versuche, hier 300 Benutzer zu registrieren:
BatchRegister(300);
public async void BatchRegister(int users = 0, int n = 1)
{
Random rnd = new Random();
while (n <= users)
{
string password = "T3sT*" + rnd.Next(1, 99).ToString();
string usernm = "Test" + n.ToString();
Debug.WriteLine("Going to register user" + usernm);
var user = new ApplicationUser { UserName = usernm, Email = usernm + "@noemail.com" };
var result = await _userManager.CreateAsync(user, password);
if (result.Succeeded)
{
Debug.WriteLine("Registered User " + usernm + " " + password);
}
n++;
}
}
Die oben läuft gut für die ersten 13 Benutzer. Sie sind in der Datenbank und ich kann mich mit den Konten einloggen. wenn ich in mehr als 13 Benutzer stürzt das Programm auf var Ergebnis jedoch eingeben = erwarten _userManager.CreateAsync (Benutzer, Passwort) mit dem Fehler:
"Cannot access a disposed object.\r\nObject name: 'UserStore`3'."
Jede Hilfe zu verstehen, warum dies geschieht und eine Lösung wäre, sehr geschätzt. Es ist nicht möglich, diese Zeile für Zeile einzugeben. Für einige Tests muss ich 2000 Benutzer eingeben.