将数据存储在WCF服务中,稍后由客户端提取

时间:2011-11-26 05:16:16

标签: wcf caching

我有一个Autocomplete ajax控件,可以自动调用WCF服务方法。 此方法获取一个字符串作为输入参数并返回一个字符串列表。 我没有从客户端进行该调用,控件执行此操作,但我编写了此方法的内容。

当我调用该方法时,我可以在WCF服务中的某处存储一些数据,并在我从客户端使用WCF后提取它吗? 我的意思是,我希望控件调用方法,在方法中我将存储一些数据,然后当我使用WCF客户端对象时,我将提取它。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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