【发布时间】:2015-09-30 04:14:19
【问题描述】:
我正在使用 ASP.NET Web 表单,并且我有一个应用程序将对象实例保存在 Session 变量中,但是当连接了多个客户端时,我的性能出现了很大问题,是否存在避免会话变量的选项?
我需要对象实例,因为我只需要修改内存中的数据并根据客户需求将数据保存在数据库中。
提前致谢
【问题讨论】:
标签: asp.net c#-4.0 web webforms
我正在使用 ASP.NET Web 表单,并且我有一个应用程序将对象实例保存在 Session 变量中,但是当连接了多个客户端时,我的性能出现了很大问题,是否存在避免会话变量的选项?
我需要对象实例,因为我只需要修改内存中的数据并根据客户需求将数据保存在数据库中。
提前致谢
【问题讨论】:
标签: asp.net c#-4.0 web webforms
您有几个选项 - 立即想到的两个选项是将会话状态卸载到内存不足选项,如 SQL 或分布式缓存(例如 Redis - 虽然从技术上讲,这些只是来自网络的内存不足服务器的视角)或将对象状态推送到页面的视图状态。
在这两个选项中,视图状态可能具有较少的开发开销,但从最佳实践的角度来看,通常首选将会话状态卸载到 Redis 之类的东西,因为它可以让您更好地控制对象状态的有效期并减少您必须向客户传输多少。对于敏感数据来说更是如此。
有关每个选项的更多信息,请参阅下面的链接。
https://msdn.microsoft.com/en-us/library/75x4ha6s.aspx
【讨论】: