从移动应用程序调用时 WCF 缓存不起作用
WCF cache does not work when called from a mobile application
我已经使用以下代码实现了 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 时,不会缓存响应。我在这里错过了什么吗?
事实证明,出于某种原因,我不得不在 Web.config 中包含另一个参数,即 used/called in/from 移动应用程序:
<add name="CacheFor60Seconds" duration="60" varyByParam="id;param2"/>
我已经使用以下代码实现了 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 时,不会缓存响应。我在这里错过了什么吗?
事实证明,出于某种原因,我不得不在 Web.config 中包含另一个参数,即 used/called in/from 移动应用程序:
<add name="CacheFor60Seconds" duration="60" varyByParam="id;param2"/>