我无法在 ASP.NET Core 2.0 中增加会话超时。会话每 20 到 30 分钟就会过期。当我将时间减少到 1 分钟并调试它时,它工作正常,但是当它增加到超过 30 分钟或小时/天时,它不会持续到指定的持续时间。
会话在调试模式以及来自 IIS(发布后托管)下 30 分钟后过期。
options.IdleTimeout = TimeSpan.FromMinutes(180);
Run Code Online (Sandbox Code Playgroud)
我在 startup.cs 文件中使用以下代码。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// Adds a default in-memory implementation of IDistributedCache.
services.AddDistributedMemoryCache();
services.ConfigureApplicationCookie(options =>
{
options.Cookie.HttpOnly = true;
options.Cookie.Expiration = TimeSpan.FromDays(3);
options.ExpireTimeSpan= TimeSpan.FromDays(3);
options.SlidingExpiration = true;
});
services.AddSession(options =>
{
// Set a short timeout for easy testing.
options.IdleTimeout = TimeSpan.FromMinutes(180);
});
services.AddSingleton<IConfiguration>(Configuration);
// In production, the Angular files will be served from this …Run Code Online (Sandbox Code Playgroud)