【发布时间】:2010-11-18 19:28:18
【问题描述】:
我在用户控件中有一个 Telerik 菜单,位于 aspx 页面中,我需要根据登录用户生成菜单。
所以我需要将数据源绑定到菜单。
我的网站每天将有 1000 多个用户。
为了防止往返请求,我从会话中生成菜单。
为此,我使用 InProc 会话并将 Sql 数据保留在会话中。
菜单的会话对象大小约为 40 字节。所以(1000 个用户)*(40 字节)=大约 40K 服务器的内存。 我没有任何其他服务器可以使用 StateServer Session。 而且我也会将会话用于其他目的。
有没有更好的解决方案,因为性能在我的场景中起着关键作用。 或者我已经选择了最好的解决方案?
【问题讨论】:
-
1) 每天 1000 个用户还是同时有 1000 个用户? 2) 到目前为止,我知道菜单是每个用户自定义的,您可能有 1000 个不同的菜单,不是吗?
-
如果内存使用和请求处理时间不是很重要,我会考虑实现一个 SiteMapProvider (msdn.microsoft.com/en-us/library/…)。如果您可以在其中缓存用户数据,那么整个站点结构可能是特定于用户的。当您需要实施其他导航控件和安全限制时,这可能会有所帮助。
-
是的 1000 个同时用户,菜单是每个用户自定义的。
-
我主要关心内存使用和请求处理时间。所以这就是我与你们分享我的场景的原因。