Кэш WCF не работает при вызове из мобильного приложения - PullRequest
1 голос
/ 11 ноября 2019

Я реализовал кэширование 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 из мобильного приложения, ответ не кэшируется. Я что-то здесь упустил?

1 Ответ

0 голосов
/ 16 ноября 2019

Оказалось, что по какой-то причине мне пришлось включить другой параметр в Web.config, который использовался / вызывался / из мобильного мобильного приложения:

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