C# ASP.net中的会话变量有限制吗?
我将从复杂的C# ASP.net中的会话变量有限制吗?,c#,asp.net,session-variables,C#,Asp.net,Session Variables,我将从复杂的对象填充数据表和其他控件 我应该在哪里存储这样的对象 会话变量开始影响页面性能的大小是多少 如果是每会话对象,则会话字典是合理的 存放它的地方 如果您使用的是进程内会话存储,对象的大小永远不会影响页面性能(至少在所有数据导致进程交换之前)。其他会话存储可能会产生轻微影响,具体取决于将数据从SQL移动到本地进程所需的时间。这会很快,直到你的物体变大 会话对象中的数据存储在服务器的内存中。因此,存储限制是服务器可用的内存。此数据在任何阶段都不会发送到客户机,除非您明确这样做。相反,一旦您
对象
填充数据表
和其他控件
对象
李>
会话
对象中的数据存储在服务器的内存中。因此,存储限制是服务器可用的内存。此数据在任何阶段都不会发送到客户机,除非您明确这样做。相反,一旦您为会话对象分配了任何值,MVC代码就会向客户端浏览器发送cookie。然后,此cookie的值用于唯一标识会话
所以
Session
对象是专门设计的,以便您可以在服务器上存储特定于会话的数据,因此适合放置您描述的特定于会话的数据结构Session
对象仅限于服务器端,因此使用Session
存储在多个页面刷新中保持不变的计算开销较大的操作的结果将加快页面加载,因为您可以使用以前的结果,而不必再次创建它。除非您在服务器上耗尽内存限制,否则您不会看到任何性能下降您需要保留数据多长时间?它是否用于多个回发?您是否有许多这样的复杂对象(每个会话有多个)?或者可能只是一个可以在整个应用程序中使用的复杂对象?有不同的页面,每个页面依赖于一个这样的对象。据我所知,会话大小仅受框(主机)的限制。会话中存储的内存越多(特别是跨并发用户存储的内存越多),您使用其他进程可用的内存的速度就越快。-每次装载时重新获取物品是否不切实际?(涉及的开销太大?)嗯,你打算如何知道用户何时关闭页面?-1:会话状态不一定存储在服务器的内存中。它可以存储在SQL Server或其他持久性存储中。@JohnSaunders,SQL Server不是也存储在服务器上的某个位置吗?或者换句话说,它不是客户solution@usefulBee它可能是与web服务器不同的服务器。