首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"ArgumentNullException:值不能为null。Arg_ParamName_Name“在ASP.NET核心中突然出现

"ArgumentNullException:值不能为null。Arg_ParamName_Name“在ASP.NET核心中突然出现
EN

Stack Overflow用户
提问于 2021-08-11 08:57:25
回答 1查看 911关注 0票数 0

我正在开发一个Swagger API,它作为Riot API的代理,用于我正在创建的一个Angular应用程序。我上一次工作是在上周,没有任何问题。但是,现在我的数据初始化器在尝试启动它时抛出了一个空异常。

首先,我重新启动了Visual Studio,然后以管理员权限重新启动,最后重新启动了笔记本电脑,没有掷骰子。然后检查这是否是我所做的某个更改,回滚到几周前的随机提交。同样的例外。

因此,这个例外似乎开始无处可寻。直到今天才看到它的发生,我无法让它消失。

异常的屏幕截图:

数据初始化器(有问题的行用注释标记在底部):

代码语言:javascript
运行
复制
public class SummonerDataInitializer
{
    private readonly SummonerContext context;
    private readonly UserManager<User> userManager;
    private readonly SummonerRepository summonerRepository;

    public SummonerDataInitializer(SummonerContext context, UserManager<User> userManager, SummonerRepository summonerRepository)
    {
        this.context = context;
        this.userManager = userManager;
        this.summonerRepository = summonerRepository;
    }

    public async Task InitializeData()
    {
        await context.Database.EnsureDeletedAsync();
        if (await context.Database.EnsureCreatedAsync())
        {
            var dashboard = new Dashboard
            {
                PinnedSummoners = new List<Summoner>
                {
                    await summonerRepository.GetBy("euw", "Jhinstachio"),
                    await summonerRepository.GetBy("euw", "DracoZar"),
                    await summonerRepository.GetBy("euw", "TrueMrCrazy"),
                    await summonerRepository.GetBy("euw", "God of Lunar")
                },
                LiveGameItems = new List<LiveGameItem>
                {
                    new LiveGameItem
                    {
                        Region = "euw",
                        SummonerName = "Don Arts",
                    },
                    new LiveGameItem
                    {
                        Region = "euw",
                        SummonerName = "3250",
                    },
                    new LiveGameItem
                    {
                        Region = "euw",
                        SummonerName = "Cboi1",
                    },
                }
            };

            var user = new User("admin", "admin@admin.com") { EmailConfirmed = true };
            await userManager.CreateAsync(user, "P@ssword1");
            await userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "admin"));
            
            user = await context.Users.SingleAsync(u => u.Email == user.Email);
            user.Dashboard = dashboard; // Removing this line fixes the exception
            context.Users.Update(user);
            await context.SaveChangesAsync();
            
        }
    }
}

老实说,我不认为这是代码的错。当然,它并不是写得非常好,Wait()也很难闻,但是一切都很正常,直到它决定不这么做。据我所知,网上类似的异常表明在这种情况下没有相关性。

编辑:忘了提一下,我还徒劳地更新了Visual Studio和所有的NuGet包。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-11 13:04:11

经过进一步调试后,发现其中一个PinnedSummoners项返回null,从而导致了这个问题。根本原因是其中一个召唤者更改了他们的名字,而我没有检查空值。让我感到困惑的是这个模棱两可的异常消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68738942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档