2012-07-09 67 views
0

因此,在我的WCF服务中,我将缓存一些数据,以便将来对服务的调用可以获取该数据。如何在WCF多线程中缓存

WCF缓存数据的最佳方式是什么?人们如何去做这件事? 如果有帮助,WCF服务是多线程的(并发模式是多个)并且ReleaseServiceInstanceOnTransactionComplete设置为false。

第一次检索这个数据的调用可能不存在,因此它会去并从某个源获取数据(可能是DB,可能是文件,可能在任何地方),但之后它应该缓存它并使其可用(理想情况下与对象的过期系统)

想法?

回答

1

一些对WCF服务的最常见的解决方案似乎是:

尝试阅读Caching Solutions

+0

谢谢。的确我在考虑appfabric。在system.runtime命名空间中使用缓存管理器怎么样?显然,这与ASP.NET缓存几乎相同,但是针对WCF制作,因此您不受限于HttpRuntime – 2012-07-09 19:32:40

1

的SOA可以应用'scal e当它使用的数据被保存在一个对于频繁事务不可扩展的存储中时,它会更有效。这是分布式缓存真正帮助的地方。回到你的问题和ErnieL的答案,这里是这些解决方案的简要比较,

就像Memcached一样,如果你的应用程序需要在一组机器上运行,那么很可能你会但是如果您的应用程序只需要在单台机器上运行,那么您将不会从使用分布式缓存中获益,并且使用内置的.Net缓存可能会更好。 访问一个memcached缓存需要进程间/网络通信,这对正在进行中的.net缓存的性能会有很小的损失。 Memcached作为外部流程/服务工作,这意味着您需要在生产环境中安装/运行该服务。 .Net缓存再次不需要这一步,因为它们是在进程中托管的。

如果我们比较NCache和Appfabric的特性,NCache人员对他们与AppFabric相比的功能范围非常有信心。你可以在这里找到足够的材料关于这两款产品的对比,像这样的......

http://distributedcaching.blog.com/2011/05/26/ncache-features-that-app-fabric-does-not-have/