我想将'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
});