Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET Core CreateAync引发ObjectDisposedException_C#_Asp.net Core - Fatal编程技术网

C# ASP.NET Core CreateAync引发ObjectDisposedException

C# ASP.NET Core CreateAync引发ObjectDisposedException,c#,asp.net-core,C#,Asp.net Core,我正在尝试在我的ASP.NET核心应用程序中创建50个种子用户帐户,但在第一次调用\u userManager.CreateAsync后,\u userManager被释放。对我来说,我的代码看起来与帐户控制器中的注册代码相同 我的代码: var generatedUsers = await GetRandomUsers(); foreach (var generatedUser in generatedUsers) { var newUser = new ApplicationUser

我正在尝试在我的ASP.NET核心应用程序中创建50个种子用户帐户,但在第一次调用
\u userManager.CreateAsync
后,
\u 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);
在第一次调用之后,my
CreateAncy
返回成功,数据库具有新的用户记录。第二次通过循环
\u userManager
被释放


我做错什么了吗?

经过长时间的调查,我发现:


因为我正在“等待”异步进程,所以在等待的中间操作(例如我的HttpClient请求或我的用户创建活动)完成之前,主请求完成,UserManager被释放。用户管理器的生命周期显然是每个请求。

哪里/如何定义
\u UserManager
您是否
等待
正确生成随机用户(即“我的代码”位)的方法?@marainesparnisari\u UserManager只是注入控制器的标准用户管理器。我想asp.net身份验证系统正常提供了它。@GregHNZ我正在等待GetRandomUsers函数,是的。该函数只是调用以检索一组随机用户数据并将其返回。@GregHNZ我尝试更改GetRandomUsers函数以仅返回硬编码对象的列表。不需要等待,但我仍然得到ObjectDisposedException。您可以在整个控制器方法调用中使用_userManager,因此这不是原因。您可能希望与我们分享如何在控制器中实例化_userManager,可能存在问题