Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 从MVC内核中的数据库表获取会话数据_Session_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

Session 从MVC内核中的数据库表获取会话数据

Session 从MVC内核中的数据库表获取会话数据,session,asp.net-core,asp.net-core-mvc,Session,Asp.net Core,Asp.net Core Mvc,在我的MVC核心应用程序中,我使用会话跟踪登录。这很好,但是当我的web应用程序空闲/重新启动时,当会话清除并且所有用户都注销时,这是一个问题。我已经修改了我的应用程序,通过调用和设置启动ConfigureServices方法中的services.AddDistributedSqlServerCache(options)&services.AddSession(options),以及调用app.UseSession()中的配置方法 我似乎每件事都做对了;当新客户端第一次设置会话值时,它会保存在缓

在我的MVC核心应用程序中,我使用会话跟踪登录。这很好,但是当我的web应用程序空闲/重新启动时,当会话清除并且所有用户都注销时,这是一个问题。我已经修改了我的应用程序,通过调用和设置启动
ConfigureServices
方法中的
services.AddDistributedSqlServerCache(options)
&
services.AddSession(options)
,以及调用
app.UseSession()
中的
配置方法

我似乎每件事都做对了;当新客户端第一次设置会话值时,它会保存在缓存表中,当
Sesion.Get
被称为会话
expiresAtime
表值更新时


那么,考虑到会话数据已保存到表中,为什么在重新启动时不抓取它呢?这不是cookie问题,cookie过期值设置为10年,会话空闲超时值设置为2周。似乎会话数据只是通过IIS内存处理的,但却被保存到我的缓存db表中,我觉得这很奇怪。

从您的描述来看,一切听起来都是正确的,但是如果能从
Startup.cs
中看到实际的代码,那会很有帮助。可能有一个错误你没有注意到,也没有在你的问题中描述。我已经检查了很多次,扫描错误并尝试了不同的选项,代码应该是正确的,但你是对的,新的眼睛不会伤害尝试在
services.AddMvc()之前移动所有分布式缓存/会话配置
。在这个问题上,顺序往往很重要,这是人们通常看到的方向。我过去曾尝试过,现在又尝试过不同的顺序,但没有什么不同;会话数据在重新启动时仍无法抓取。我已经断断续续地处理这个问题好几个星期了,尝试了我遇到的所有指南和想法,但没有任何解决方案。可能只是MVC核心的一个问题。