【发布时间】:2011-02-04 11:51:35
【问题描述】:
我有一个 WCF 服务,用于从我的数据库中获取一些数据。数据库的大小非常大,大约 2 GB。所以我缓存了这些数据。我想在服务主机时缓存这些数据,所以我首先使用了
InstanceContextMode = InstanceContextMode.Single
这个服务行为让我可以简单地在服务构造函数中编写缓存代码,因为构造函数只会在 servicehost.open(); 时被调用。方法调用。每当客户端将通过代理构造函数调用此服务时,都不会调用。这工作得很好。后来我意识到当 1000 个用户一次调用这个服务时,这个 InstanceContextMode 有性能问题,因为这个服务只有一个实例服务所有请求。为了获得最佳性能,我将设置更改为
InstanceContextMode = InstanceContextMode.PerCall 和 ConcurrencyMode = ConcurrencyMode.Multiple
现在我想获得与缓存服务主机数据时相同的缓存功能。请帮我解决这个问题。
请让我知道我可以通过 CustomBehaviors 实现这一点吗?
问候, 里兹万
【问题讨论】:
标签: wcf