【发布时间】:2018-12-14 07:10:08
【问题描述】:
我在 ASP.Net Web API 中配置了 cookieless session_state,超时时间为 20 分钟。
<sessionState mode="InProc" timeout="20" />
在建立的每个新会话上,我都会将生成的 session_id 存储在字典中以跟踪会话,并在 session_end 时分别从字典中删除 session_id。
但是我遇到了一个奇怪的问题(不是很频繁),每当新用户建立会话时,它就会立即过期,并且 session_id 会从字典中删除。
Session_End 代码:
protected void Session_End()
{
var sessionId = this.Session.SessionID;
if (SessionDictionary.ContainsKey(sessionId))
{
SessionDictionary.Remove(sessionId);
}
}
所以请如果有人可以指导我。 另外,我怀疑“this.Session.SessionID”是指已过期的 session_id 还是当前创建的。
提前致谢
【问题讨论】:
-
我很好奇您为什么需要跟踪会话。
-
我在会话中为每个相应的用户存储数据,这就是为什么
标签: c# asp.net iis asp.net-web-api session-state