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