ASP.net中的会话变量是否有限制?

时间:2013-02-20 01:15:26

标签: c# asp.net session-variables

我将从复杂的DataTable填充controls和其他object

  1. 我应该在哪里存储这样的object
  2. 会话变量以什么尺寸开始影响页面的性能?

2 个答案:

答案 0 :(得分:3)

Session对象中的数据存储在服务器的内存中。因此,存储限制是服务器可用的内存。除非您明确这样做,否则不会在任何阶段将此数据发送到客户端。相反,一旦为Session对象分配了任何值,MVC代码就会向客户端浏览器发送cookie。然后,此cookie的值用于唯一标识会话。

因此...

  1. Session对象是专门设计的,因此您可以在服务器上存储特定于会话的数据,因此您可以放置​​与您描述的特定于会话的数据结构。
  2. 因为Session对象只是服务器端,所以使用Session来存储在多个页面刷新中不变的计算成本高的操作的结果将加快页面加载,因为你可以使用前面的结果而不是必须再次创建它。除非你破坏了服务器上的内存限制,否则你不会看到任何性能下降。

答案 1 :(得分:0)

  1. 如果它是每会话对象,则会话字典是合理的 存放它的地方
  2. 如果您正在使用InProcess会话存储,则对象的大小永远不会影响页面性能(至少在所有数据导致进程交换之前)。其他会话存储可能会产生轻微影响,具体取决于从数据库移动数据所需的时间。 SQL到本地进程。这将很快,直到你的对象变得非常大。