0

需要问你一些帮助。

我有在 Net 2.0 中运行的网络应用程序。
我想问我应该为我的对象使用什么存储(缓存、会话、文件),因为它们有不同的使用范围。可以分为几组:
1)与访问者直接相关的对象(例如认证后收到的有关访问者的详细信息)
2)每个访问者使用的对象,因此它的应用范围(一些初始化数据,公共数据)

这些对象中的大多数都从 Web 服务获取数据,这很昂贵。

那么,考虑到速度、内存、可访问性以及我应该注意的其他方面,我的最佳选择是什么。

欢迎任何帮助。谢谢,X。

4

3 回答 3

2
  1. 应该存储与访问者直接相关的对象,Session尽管过度使用Session和许多用户可能会导致可伸缩性问题。

  2. 应该存储为每个访问者共享的对象,Cache以便如果不经常访问它们,它们将超出范围,以便可以回收内存(更不用说依赖项的额外激励)。在您知道对象必须立即可访问的情况下,无论上次访问对象之间经过了多长时间,您都应该将该对象存储在Application.

于 2008-11-20T21:48:46.077 回答
1

第 1 项 - 会话很可能是每个用户的最佳会话,但是,请务必限制其中的项目数量,因为存在扩展问题以及在网络场中的注意事项。

第 2 项 - 根据您的需要,这将是您想要添加的缓存或应用程序级别的项目,具体取决于到期需要等。关键区别在于缓存具有可以删除它的到期和使用项目,应用程序用于总是留在那里的东西。

总体而言,在 Web 应用程序中,我强烈推荐 AGAINST 文件,因为您必须担心线程安全。

于 2008-11-20T21:48:26.653 回答
0

每个访问者的相对对象应存储在 Session 中。这是每个访问者唯一的,但往往会经常刷新,当您移动到多服务器环境时,这也很难扩展。

与整个应用程序相关的对象应存储在 ASP.NET 缓存中。

于 2008-11-20T21:49:16.603 回答