从移动应用程序调用时,WCF缓存不起作用

问题描述 投票:1回答:1

我已经使用以下代码实现了WCF缓存:

iService.vb

<OperationContract()>
<AspNetCacheProfile("CacheFor60Seconds")>
<WebGet(RequestFormat:=WebMessageFormat.Json, UriTemplate:="some-url?id={id}", BodyStyle:=WebMessageBodyStyle.Bare, ResponseFormat:=WebMessageFormat.Json)>

Web.Config

<system.web>
    <caching>
      <outputCache enableOutputCache="true"></outputCache>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="CacheFor60Seconds" duration="60" varyByParam="id"/>
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>
</system.web>

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" minFreeMemoryPercentageToActivateService="0" multipleSiteBindingsEnabled="true">
    </serviceHostingEnvironment>
</system.serviceModel>

当我使用浏览器调用REST API时,该解决方案正常工作。响应被缓存。但是,当我从移动应用程序调用REST API时,响应不会被缓存。我在这里想念什么吗?

asp.net rest web-services wcf outputcache
1个回答
0
投票
事实证明,由于某种原因,我不得不在Web.config中包含另一个参数,该参数已在移动移动应用程序中使用/从中调用:

<add name="CacheFor60Seconds" duration="60" varyByParam="id;param2"/>

© www.soinside.com 2019 - 2024. All rights reserved.