我在我的一个网站上使用 SqlProfileProvider,在一个页面中我需要获取整个配置文件列表(它是一个 Intranet)。
我使用的方法是 ProfileManager.GetAllProfiles()。问题是它的性能非常糟糕,并且大大降低了网站速度。
因此,我正在考虑将 Application 范围内的方法调用结果缓存为 DataTable(这样我也可以对其进行过滤/搜索)。
我的问题是我有几台服务器运行这个 webapp,我希望缓存是同步的。我开始使用 memcached,但我被一些问题推迟了(因此回到应用程序范围内的缓存思考)。
所以,这是我的问题:
- 将包含配置文件的 DataTable 存储在 Application 对象中是否有效?或者,是否可以将对象存储在缓存中并使它们可用于所有客户端/浏览器?
- 是否可以向此缓存添加(SQL)缓存依赖关系?