c# - 如何在 WCF 中使用缓存

标签 c# wcf caching

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

如果 WCF 上的负载很高,最好使用一些缓存,以避免必须一直挖掘数据库。

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

如何有效地完成这项工作?我读过一些关于基本 Web HTTP 服务缓存的内容,但我不确定这是否是最佳解决方案。

非常感谢。

最佳答案

就个人而言,我喜欢让我的 WCF 服务 session 就绪,并将我的缓存存储在 session 中。始终要在数据的静态程度和需要提取的数据量之间进行权衡。

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

但问题是,您是在谈论客户端缓存还是服务器端缓存?意思是你是想在客户端缓存数据集,还是只是在从数据库服务器拉取数据集的网络服务器上缓存?

如果您在谈论客户端缓存,那么您可以在 cookie 中缓存、在 javascript 变量中缓存、使用 http 缓存或上述 HTML 5 应用程序缓存机制。

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

关于c# - 如何在 WCF 中使用缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8507914/

相关文章:

c# - 在 WCF 中捕获 InvalidDataContractException 的单元测试

python - 在 TravisCI 上缓存 pipenv/Pipfile 依赖

c# - 使用 linq 检查记录是列表中的最后一个还是第一个

C# : Number Conversion Problem

c# - 静态属性/ViewModel(C#、WinRT)

caching - "false sharing"是什么?如何重现/避免它?

database - 在高性能应用程序上缓存数据库表

c# - 将 URL 添加到 .NET XML 注释

asp.net - HowTo : Pass Windows user credentials of asp.net Intranet 用户到 WCF 服务

jquery - WCF 服务因方法不允许而失败