ASP.NET 中的MongoDB标识抛出“值不能为null。Arg_ParamName_Name“,当 UserManager 尝试访问数据库时

MongoDB identity in ASP.NET throws "Value cannot be null. Arg_ParamName_Name" when UserManager tries to acccess db

提问人:Derk-o-Matec 提问时间:11/17/2023 更新时间:11/17/2023 访问量:9

问:

上周我的代码可以工作了。然后昨天开始得到“值不能为空。Arg_ParamName_Name“,每当我尝试访问 MongoDB 数据库中的 Users 集合时 我使用 AspNetCore.Identity.MongoDbCore 来存储用户。

每当userManager尝试访问它时,我的MongoDbContext都有错误的函数,其中partitionKey为null。

public IMongoCollection<TDocument> GetCollection<TDocument>(string partitionKey = null)
{
    return Database.GetCollection<TDocument>(partitionKey);
}

我的 ApplcationUser 模型是这样设置的:

[CollectionName("Users")]
public class ApplicationUser : MongoIdentityUser<Guid>{}

构建器将身份服务设置如下:

builder.Services.AddIdentity<ApplicationUser, ApplicationRole>()
    .AddMongoDbStores<ApplicationUser,ApplicationRole,Guid>(mongoDbContext)
    .AddDefaultTokenProviders();

每当我尝试访问“用户”创建/登录_userManager所在位置时,程序都会失败 私有 UserManager _userManager;ApplicationUser appUser = await _userManager.FindByEmailAsync(email);

附言。 RoleManager 也无法访问数据库 当我对访问用户进行硬编码时,例如:

public IMongoCollection<TDocument> GetCollection<TDocument>(string partitionKey = null)
{
    return Database.GetCollection<TDocument>("Users");
}

我可以登录并创建用户

我尝试重新安装NuGet包,更新到最新的.NET 7版本,降级到.NET 6无济于事

C# asp.net MongoDB ASP.NET 标识

评论


答: 暂无答案