添加"Microsoft.AspNetCore.Session":ArgumentNullException:值不能为空



我想将'Microsoft.AspNetCore.Session'包集成到我的aspnet样板解决方案(ASP.NET Core 2.x)中以使用会话。

我通过NuGet将'Microsoft.AspNetCore.Session'包添加到我的Web.Mvc项目中。然后我将以下代码插入ConfigureServices方法(Startup.cs):

    // Session Configuration
    services.AddSession(options =>
    {
        // Set a short timeout for easy testing.
        options.IdleTimeout = TimeSpan.FromHours(4);
        options.Cookie = new CookieBuilder { HttpOnly = true };
    });

之后,我在Configure方法(Startup.cs)中调用app.UseSession() app.UseAbp()

现在,如果我运行该应用程序,则会收到以下错误:

Microsoft.AspNetCore.Server.Kestrel - 连接 ID "0HL96OHPL754P", 请求 ID "0HL96OHPL754P:00000001":引发未处理的异常 通过应用程序。System.ArgumentNullException:值不能为 零。参数名称:键在 Microsoft.AspNetCore.Http.Internal.RequestCookieCollection.get_Item(String 键)在 Microsoft.AspNetCore.Session.SessionMiddleware.d__9.MoveNext()

如果我删除app.UseSession()调用,应用程序将正常运行。

有什么想法吗?请帮忙!

我找到了解决问题的方法。谢谢朱纳斯的提示。

我必须更改会话配置:

// Session Configuration
services.AddSession(options =>
{
    options.IdleTimeout = TimeSpan.FromHours(4);
    options.Cookie.HttpOnly = true; // correct initialization
});

最新更新