在Windows服务中托管的wcf服务,我有哪些缓存选项?

时间:2012-01-05 22:21:41

标签: c# wcf windows-services

我的Windows服务正在托管WCF服务。

根据我的理解,我的wcf服务可以是单例,也可以根据客户端请求创建新的端点。

我从中理解,如果它是单例,那么与每个客户端请求生成端点相比,在端点内完成的任何缓存都会表现不同。

如果我在上述设置中出错,请纠正我。

我有哪些缓存选项?

是否类似于网页,其中作为网页新实例的多个请求具有可在应用程序范围内使用的缓存存储?

2 个答案:

答案 0 :(得分:2)

看看

This Link

用于端点管理。

总结为:

  

实例管理是一组技术,帮助我们将所有客户端请求绑定到服务实例,以控制哪个实例处理哪个请求。为了熟悉所有实例管理模式,我们应该对它们进行简要概述。基本上WCF中有三种实例模式:

     

每会话实例模式

     

每次呼叫实例模式

     

单例实例模式

我在这种情况下通常所做的是每会话实例缓存。 (当然这取决于我正在尝试做什么)。

我使用缓存对象,如下所示:

Configuration GetCachedConfiguration()
    {

        // If there is no cached item, get it from the database first.

        if (cachedConfiguration == null)
        {
            cachedConfiguration = ConfigurationData.GetConfigurationData();
        }

        return cachedConfiguration;
    }

其中cachedConfiguration是我的静态缓存对象。此函数充当配置数据的访问者(在本例中)。

答案 1 :(得分:1)

最简单的方法是将缓存数据存储在静态类中。