#region 使用Redis保存Session string address = Configuration["RedisAddress"] + ",password=" + Configuration["RedisPassWord"]; //添加数据保护(把sessionid存储到redis) services.AddDataProtection() .SetApplicationName("sessionIdSave") .PersistKeysToStackExchangeRedis(Helper.getSessionConfig(address), "session_afsweb"); //添加redis配置 services.AddDistributedRedisCache(option => { //redis 连接字符串 option.Configuration = address; //redis 实例名 option.InstanceName = Configuration["InstanceName"]; }); //添加session配置 services.AddSession(options => { //session存活时间 options.IdleTimeout = TimeSpan.FromHours(Convert.ToDouble(Configuration["SessionTimeOut"])); options.IOTimeout = TimeSpan.FromHours(Convert.ToDouble(Configuration["SessionTimeOut"])); //设为httponly options.Cookie.HttpOnly = true; }); #endregion
使用redis存储sesionid和session中的数据
项目为内部项目,并发量不大,两台centos7,nginx反向代理+ip_hash
分析过程:
1、通过日志发现,凌晨也会出现这个问题,所以判断和并发量应该无关
跪求大佬帮忙分析下
.net core 3.1 ActionFilter 拦截器 偶然 OnActionExecuting 中HttpContext.Session.Id 为空字符串 的问题
原文:https://www.cnblogs.com/jianghaidong/p/14850350.html