2011-11-26 114 views
0

我有一个自动完成ajax控件,它自动调用WCF服务方法。 该方法获取一个字符串作为输入参数并返回一个字符串列表。 我没有从客户端进行调用,控件做到了,但是我写了这个方法的内容。将数据存储在WCF服务中并稍后由客户端提取

当我调用该方法时,我可以在WCF服务的某个地方存储一些数据,稍后当我从客户端使用WCF时将其提取出来? 我的意思是,我想控制调用该方法,在方法中我将存储一些数据,然后当我使用WCF客户端对象时,我将提取它。

有没有这样的“WCF缓存”机制?

回答

1

不,不存在'WCF缓存'机制。但是WCF是.NET,而在.NET应用程序中,您可以使用Caching Application Block

缓存与WCF的关系很少。您在应用程序内缓存,但WCF服务的缓存机制与Windows窗体应用程序或托管Windows服务(或ASMX Web服务,或ASP.NET应用程序或任何.NET应用程序)基本相同。唯一的区别是您如何使用和依赖缓存&如何管理应用程序的生命周期。

如果您的WCF服务托管在IIS中(非常流行),那么当应用程序池被回收(或重新启动网站)时,您将失去缓存中的所有内容。这会是一个问题吗?

缓存的典型用例是当您有一组数据存储(在数据库中)时需要一遍又一遍地检索。而不是每次都从数据库中获取,而是从缓存中获取。如果它不在缓存中,则从数据库获取并将其放入缓存,以便下次使用。这听起来像你想要将来自客户端应用程序的一些数据存储在缓存中。你可以做到这一点,但如果它不在那里,当你去检索它会发生什么。

+0

所以你说有一个缓存的服务,它不同于我的应用程序中的缓存,所以我可以选择是否使用它们中的每一个。是像应用程序缓存一样使用服务缓存吗?缓存[ “名称”]? – Rodniko

相关问题