希望代码能说明其中的大部分内容,但是我想每5分钟访问一次会话变量,但是我知道如何执行此操作的唯一方法是使用HttpContext.Current。
这在页面仍然新鲜时第一次起作用,但在下一次迭代中不起作用。
第一次成功调用后,CurrentCtx.Session变为null,我理解了原因,但是我正在寻找一种替代解决方案,以便它可以工作。
我该怎么做?
public static void StartModelNotification()
{
var startTimeSpan = TimeSpan.Zero;
var periodTimeSpan = TimeSpan.FromMinutes(1);
var CurrentCtx = System.Web.HttpContext.Current;
timer = new System.Threading.Timer((e) =>
{
SendModelNotification(CurrentCtx);
}, null, startTimeSpan, periodTimeSpan);
}
public static void SendModelNotification(HttpContext CurrentCtx)
{
if (CurrentCtx != null)
{
if (CurrentCtx.Session != null)
{
var sessionModel = CurrentCtx.Session[ToxSentryWebConstants.QB_QUERYMODEL_MAPPING_SESSION_DATA];
if (sessionModel != null)
{
MappingModelGroupWrapper sessionMappingModel = sessionModel as MappingModelGroupWrapper;
sessionMappingModel.ResetModelLastAccessedDate(ResultsID);
}
}
}
}