带有basichttpsbinding的WCF(SOAP)中的缓存 - 简单示例



我创建了简单的WCF服务,以将数据列表返回到客户端。为了提高WCF的性能,我需要添加缓存以保持一些参考值。这样,我就不必每次都点击数据库。这是我第一次写缓存。所以下面是问题列表。

  • 任何简单的示例示例我都可以参考
  • 我需要在哪里初始化此缓存对象
    1. 我是否需要创建用于缓存的操作合同和服务方法? 如果是这样,我该如何在服务中初始化此过程
    2. 我需要写课程以保持此初始化逻辑吗?如果逻辑以确保在任何方法开始都填充它的情况下,我是否需要写作?

预先感谢您。

您需要在要缓存的方法上方添加AspnetCacheprofile属性。这样可以确保每次客户端从该方法请求数据时都不会调用特定方法。缓存配置文件必须首先在web.config文件中定义。

[ServiceContract] AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService
{ 
    [AspNetCacheProfile("MyCacheProfile")]
    public SomeData GetData(int id)
    {
         // ...
    }
}

和web.config文件在:

中配置配置文件mycacheprofile
<system.web>
   <caching>
      <outputCacheSettings>
         <outputCacheProfiles>
            <add name="MyCacheProfile" duration="30"
varyByParam="none" sqlDependency="MyTestDatabase:MyTable"/>
         </outputCacheProfiles>
      </outputCacheSettings>
   </caching>
</system.web>

属性"缓存"设置了应在秒内缓存响应的时间,并且" varybyparam"允许您指定用于缓存响应的查询字符串参数。

有关更多详细信息,请参阅此信息。

最新更新