現在のニーズに応じてさまざまなユーザーをシードしようとしています。 MVC4ではこれがうまく動作しませんでした。 MVC6にAsyncが必要になったので、13人以上のユーザーをシードしようとすると失敗を続けます。MVC 6ループ内のユーザーをシードすることは、14番目のユーザーが常に破棄して、廃棄オブジェクトにアクセスできない。
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++;
}
}
最初の13人のユーザーのためだけで罰金以上のラン:私はここに300人のユーザーを登録しようとしています
[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;
} ...
:私は標準RC1最終AccountControllerテンプレートを使用しています。彼らはDBにあり、私はアカウントでログインできます。これが起こっていると解決策は次のようになり、なぜ
"Cannot access a disposed object.\r\nObject name: 'UserStore`3'."
理解する上で任意のヘルプ:私はVAR結果に13の以上のユーザープログラムがクラッシュして入力した場合は、=エラーと_userManager.CreateAsync(ユーザー、パスワード)を待ちますとても有難い。これらを行単位で入力することは可能ではありません。いくつかのテストでは、私は2000人のユーザーを入力する必要があります。