我的基于MVC的应用程序,挂钩了一些发回大量数据的Web服务! 使用相同的,我渲染我的观点。 Web服务很慢,不受我的控制。 所以我想在每次会话中存储这些信息,但我担心,这会让我的网络服务器瘫痪。只有几百个用户,Web服务器将耗尽内存。
有没有办法可以将会话数据存储在每个会话的文件中?我更关注一些开箱即用的开源解决方案。
我也欢迎,新的建议!
答案 0 :(得分:2)
您可以在会话存储中存储几乎任何对象,但有一些例外情况通常与在服务器场上运行相关。不过,我会在这里忽略这些情况。
如果您只处理几MB的数据,将它存储在Session对象(或者像@Rick建议的Cache)中不一定是主要问题。一旦从Web服务返回数据并将其解析为您自己的内部数据结构,只需将数据结构的根对象放入Session。我经常使用这种方法来存储需要很长时间才能运行的数据库查询的结果,尤其是当查询条件不太可能经常更改时。
对于较大的数据集,您应该使用数据库来存储信息。创建与您返回的数据结构相匹配的表,并以某种方式标记数据,以指示数据的大小以及获取数据时使用的标准。根据需要进行更新,并在数据库中查询每个客户端请求的记录。
还有很多其他选项,包括使用SessionID创建临时文件来存储数据以识别它们,但我建议首先调查数据库选项。
答案 1 :(得分:1)
缓存是你的朋友。由于您使用的是MS技术,因此您可能需要查看the Cache Class
答案 2 :(得分:0)
您可以序列化结果集合并将其作为xml保存在文件中(甚至直接从XML使用linq / XPath处理它),或使用任何.net本机xml数据库来存储和保存文件上的数据。