0

我们有一个 MVC 项目,它将处理显示跟踪记录机制,该机制从多个应用程序收集数据,这些应用程序都与一个主应用程序套件相关。Trace 日志记录工具是一种服务,它收集异常和其他各种日志记录信息并将它们放在数据库中以供以后使用。这个 MVC 项目是消费的一部分。

我敢肯定你会说,有很多数据是通过 Entity / LINQ 返回的。现在,开发人员正在取回所有数据并使用会话变量来保存这些数据(我认为他说这就像被返回的 3-5 MB 数据一样好。)。仅将 512 条跟踪发送回视图/浏览器。然后,用户可以按他们通过 AJAX 调用键入的任何内容进行过滤。开发人员正在使用旧的 Session["name"] 对象将数据放入其中,并使用 LINQ 在服务器上对其进行过滤,这样他就不会在每次选择/键入过滤器时都点击跟踪服务。

它在本地工作,但不是远程工作。我认为 IIS 存在问题,但尚未调查。

我想知道 Sessions 是否是此类大数据的最佳方法,或者是否有更好的建议而不是 Sessions 会更好。我知道 MVC 是无状态的,我尽量保持它除了 TempData 之外的任何东西可以,但不确定如何解决这个问题

4

1 回答 1

1

使用 HttpRunTime.Cache 存储数据可能会更好,因为它在过期方面具有灵活性,特别是如果跟踪对应用程序是全局的,例如

private List<string> GetApplicationSuiteTraces() 
{
    List<string> applicationSuiteTraces = Cache["ApplicationSuiteTraces"];

    if(applicationSuiteTraces == null) 
    {    
       applicationSuiteTraces = Service.GetTraces();
       Cache.Add("ApplicationSuiteTraces", applicationSuiteTraces, null, DateTime.Now.AddSeconds(600), Cache.NoSlidingExpiration, CacheItemPriority.High, null);
    }

    return applicationSuiteTraces;
}
于 2012-09-13T02:51:17.310 回答