Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Asp.net mvc MVC 3传输大数据(5MB)_Asp.net Mvc_Linq_Session_Large Data - Fatal编程技术网

Asp.net mvc MVC 3传输大数据(5MB)

Asp.net mvc MVC 3传输大数据(5MB),asp.net-mvc,linq,session,large-data,Asp.net Mvc,Linq,Session,Large Data,我们有一个MVC项目,该项目将处理显示跟踪日志机制,该机制从多个应用程序收集数据,这些应用程序都与一个主应用程序套件相关。跟踪日志记录工具是一种服务,它收集异常和其他各种日志记录信息,并将它们放在数据库中供以后使用。这个MVC项目就是这种消费的一部分 我相信您可以看出,有很多数据是通过Entity/LINQ返回的。现在,开发人员正在收回所有数据,并使用会话变量来保存这些数据(我想他说,返回的数据相当于3-5MB)。只有512条记录道被发送回视图/浏览器。然后,用户可以通过AJAX调用按他们键入的

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

我相信您可以看出,有很多数据是通过Entity/LINQ返回的。现在,开发人员正在收回所有数据,并使用会话变量来保存这些数据(我想他说,返回的数据相当于3-5MB)。只有512条记录道被发送回视图/浏览器。然后,用户可以通过AJAX调用按他们键入的任何内容进行过滤。开发人员使用旧的Session[“name”]对象将数据放入,并使用LINQ在服务器上对其进行筛选,这样他就不会在每次选择/键入筛选器时都访问跟踪服务

它在本地工作,但不能远程工作。我认为IIS有一个问题,但尚未对此进行研究


我想知道对于这样的大数据,会话是否是最好的方法,或者是否有更好的建议而不是更好的会话。。我知道MVC是无状态的,我尽我所能保持它除了TempData之外没有任何东西,但不确定如何解决这个问题,否则最好使用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;
}
private List getApplicationSuite()
{
List applicationSuiteTraces=Cache[“applicationSuiteTraces”];
if(ApplicationSuite==null)
{    
ApplicationSuite=Service.GetTraces();
Add(“applicationSuite”,applicationSuite,null,DateTime.Now.AddSeconds(600),Cache.NoSlidingExpiration,CacheItemPriority.High,null);
}
返回应用程序套件;
}

您是否使用会话缓存服务中的数据?或者您正在使用会话做什么?会话用于缓存来自服务的数据,以减少对大量数据的访问。然后MVC应用程序使用这些缓存数据通过linq进行过滤(此时实时性不是问题)为什么不使用缓存对象的标准方式?完美的交钥匙。我有一个关于使用HttpRuntime.Cache的博客。直到你发帖我才想到这件事。再次感谢!