添加' Microsoft.AspNetCore.Session&#39 ;: ArgumentNullException:值不能为null

时间:2017-11-08 17:06:58

标签: c# asp.net-core aspnetboilerplate

我想整合' Microsoft.AspNetCore.Session'打包到我的aspnetboilerplate解决方案(ASP.NET Core 2.x)中以使用会话。

我添加了' Microsoft.AspNetCore.Session'通过NuGet打包到我的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 };
    });

之后,我在app.UseSession()方法(Startup.cs)app.UseAbp()之后致电Configure

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

  

Microsoft.AspNetCore.Server.Kestrel - 连接ID" 0HL96OHPL754P",   请求ID" 0HL96OHPL754P:00000001":抛出未处理的异常   通过申请。 System.ArgumentNullException:值不能   空值。参数名称:键位于   Microsoft.AspNetCore.Http.Internal.RequestCookieCollection.get_Item(字符串   关键)at   Microsoft.AspNetCore.Session.SessionMiddleware.d__9.MoveNext()

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

有什么想法吗?请帮忙!

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。感谢juunas的提示。

我必须更改会话配置:

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