Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储大型动态对象(而不是会话)的替代方法_C#_Asp.net_Session State - Fatal编程技术网

C# 存储大型动态对象(而不是会话)的替代方法

C# 存储大型动态对象(而不是会话)的替代方法,c#,asp.net,session-state,C#,Asp.net,Session State,我有一个在.NET2.0中开发的web应用程序 我在会话中存储大型业务对象,这些对象经常更改 有时我观察到服务器错误。这是导致错误的原因吗 是否有其他方法存储这些对象 提前感谢将数据逐个存储在数据库中 编辑 如果要每5秒读取一次,请缓存结果 不过,这可能不是解决方案。与其在会话中存储业务对象,不如使用一种允许您将数据存储在数据库中并在适当的时间段内缓存数据的体系结构 除非您将会话数据存储在数据库中,否则您当前使用会话的体系结构最终将出现缩放问题,因此,您最好首先从数据库中获取数据。根据您提供的数

我有一个在.NET2.0中开发的web应用程序 我在会话中存储大型业务对象,这些对象经常更改

有时我观察到服务器错误。这是导致错误的原因吗

是否有其他方法存储这些对象


提前感谢

将数据逐个存储在数据库中

编辑

如果要每5秒读取一次,请缓存结果


不过,这可能不是解决方案。

与其在会话中存储业务对象,不如使用一种允许您将数据存储在数据库中并在适当的时间段内缓存数据的体系结构


除非您将会话数据存储在数据库中,否则您当前使用会话的体系结构最终将出现缩放问题,因此,您最好首先从数据库中获取数据。

根据您提供的数据,问题似乎与性能无关


关于“对象引用未设置错误”。在我看来,存在线程同步问题。在您尝试将会话对象设置为服务调用的值时/之前,将检索并使用会话对象。您可以添加线程同步(ReaderWriterLock?),看看这是否可以将错误降至最低。

您所说的“大型业务对象”是什么意思?为什么需要逐个用户地持久化它们?还有,您会遇到什么错误?如果您可以发布异常,我们可能能够回答这个问题。使用数据库是因为它应该存储大型对象,如果它们频繁更改,则可能存储更多。这些对象包含许多需要从web服务更新的变量(每5秒一次)。比较会话中存储的变量和从web服务检索的变量,我需要执行一些操作。然后我需要更新会话对象。我面临的错误是“对象引用未设置为对象的实例”,因为我每5秒轮询一次数据,这不会降低性能吗?缓存数据库中的结果,以便从缓存而不是数据库中读取数据。仅仅是一个想法,可能不适合您的需要。如果不知道数据是什么,他不需要缓存数据,他的查询应该是~1s。