2013-04-18 24 views
0

我在项目中使用了很多ASCX用户控件。这些控件利用更新面板来更新其内容。要在部分帖子后台保留数据(即更新面板更新时),我将所有控件数据存储在会话中。例如,我可能有一个使用CheckBoxList的控件。当用户从列表中选中一个框时,它会导致部分回发(执行一些逻辑操作),并且更新面板会触发。由于该面板正在更新,因此我将丢失后发之间的所有数据,除了我将这些数据存储在会话中。这样,当控件重新加载时,我可以获取数据并恢复复选框列表。我的会话通常由对象列表组成。在用户控件中使用会话

我的问题是:这是坚持数据的最佳方式吗?我可能没有考虑到哪些可能的问题?我被告知,如果多个人同时使用这个(因为对象列表很大),IIS可能会耗尽内存并崩溃。

感谢所有帮助

回答

0

这很难说,如果这是你的特定项目“坚持数据的最佳方式”。然而,我可以解决你的问题中的“可能的问题”部分。

会话状态默认存储在内存中,这意味着您将在服务器上使用其他资源。会话变量可以随时创建,并且不要求您明确地处理它们,这可能会导致更多的开销。所以是的你是正确的,使用会话的大部分功能很可能意味着使用更多的资源(CPU和内存)。它是否会“耗尽内存和崩溃”是负载与服务器的问题。