我想整合' 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()
电话,则应用程序正常运行。
有什么想法吗?请帮忙!
答案 0 :(得分:0)
我找到了解决问题的方法。感谢juunas的提示。
我必须更改会话配置:
// Session Configuration
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromHours(4);
options.Cookie.HttpOnly = true; // correct initialization
});