如何使用WCF进行缓存

时间:2011-12-14 16:22:49

标签: c# wcf caching

我正在开发一个返回JSON数据的WCF。该方法将获取一个参数并返回数据库中的数据。

如果WCF上的负载很高,那么使用一些缓存会很好,以避免不得不一直深入挖掘数据库。

编辑: 该方法将返回最近的项目。因此,该方法应该为所有提供相同时间间隔作为参数的请求返回相同的响应。

如何有效地完成这项工作?我已经阅读了关于基本Web HTTP服务缓存的文章,但我不确定这是否是最佳解决方案。

非常感谢。

2 个答案:

答案 0 :(得分:1)

就个人而言,我喜欢让我的WCF服务准备好会话并将我的缓存存储在会话中。权衡总是取决于数据的静态程度和需要下载的数据量。

对于非常静态的数据,我可以缓存会话的长度,或者直到数据发生变化(确定不同的用户是否更改了会话的缓存数据是另一回事)。对于非常动态的数据,我发现很难相信我的缓存超过几分钟(这仍然不是完全安全的)。

问题是,您是在谈论客户端缓存还是服务器端缓存?意思是你试图在客户端缓存数据集,或者只是缓存在从数据库服务器中提取数据集的Web服务器上?

如果您正在谈论客户端缓存,那么您可以缓存cookie,缓存javascript变量,使用http缓存或前面提到的HTML 5应用程序缓存机制。

这一切都是关于工作的正确工具,但在这种情况下没有锤子;)

答案 1 :(得分:0)

您可以使用HTTP缓存控制: http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

或HTML 5应用程序缓存: http://www.html5rocks.com/en/tutorials/appcache/beginner/

您的客户将如何使用WCF服务?通过jQuery AJAX请求?标准GET请求?