ASP.NET Core CreateAsync引发ObjectDisposedException

时间:2017-04-29 22:46:49

标签: c# asp.net-core

我尝试在我的ASP.NET核心应用中创建50个种子用户帐户,但在第一次调用_userManager.CreateAsync后,_userManager被处理掉了。对我来说,我的代码看起来与帐户控制器中的注册代码相同。

我的代码:

var generatedUsers = await GetRandomUsers();
foreach (var generatedUser in generatedUsers)
{
    var newUser = new ApplicationUser
    {
        UserName = generatedUser.Email,
        Email = generatedUser.Email,
        DisplayUserName = "Boo"
    };

    var result = await _userManager.CreateAsync(newUser,"123Abc!");
}

以下是来自AccountController.cs的相关注册码,可以重复使用:

var user = new ApplicationUser { UserName = model.Email, Email = model.Email, DisplayUserName = model.DisplayUserName};
var result = await _userManager.CreateAsync(user, model.Password);

第一次调用后,我的CreateAsync返回成功,数据库有新的用户记录。第二次通过循环_userManager被处置。

我做错了吗?

1 个答案:

答案 0 :(得分:0)

经过长时间的调查后,我想出来了:

因为我正在等待"然后主要请求完成,并且在等待的中间操作完成之前处理UserManager - 例如我的HttpClient请求或我的用户创建活动。 UserManager生命周期显然是按请求。