【问题标题】:Setting HTTP cache control headers in WCF service在 WCF 服务中设置 HTTP 缓存控制标头
【发布时间】:2023-04-08 06:45:01
【问题描述】:

我正在开发在 WCF 上实现的 HTTP REST 服务。我想为我的操作适当地设置 HTTP 缓存控制标头。

我见过一些涉及使用WebOperationContext.Current.OutgoingResponse 修改每个方法中的标头的示例。但说实话,这很让人头疼,尤其是因为我几乎所有的操作都将使用相同的缓存控制策略(无缓存)。

我认为必须有一种优雅的方式来设置它。也许是 ServiceBehavior 的组合来设置服务级别默认值,以及 OperationBehaviors 来覆盖某些操作?或者也许有更好的方法来做到这一点?

【问题讨论】:

    标签: asp.net wcf rest http-caching


    【解决方案1】:

    WCF 服务尊重 Web.Config 中的 outputCache 设置。此外,您可以指定 OutputCacheProfiles,它们也在 Web.config 中定义,然后是 specify which OutputCacheProfle to use at the method level with decorators

    【讨论】:

    • 这个我没试过,但是我对Output Caching的理解是,它只与将结果保存在内存中有关,不影响HTTP缓存控制头。
    • @BrianReischl OutputCacheProfiles 具有可以定义为服务器或客户端的位置属性。当设置为 Client 时,响应包含与 OutputCacheProfile 的定义匹配的 HTTP 标头。
    猜你喜欢
    • 2013-04-01
    • 2011-01-28
    • 2011-10-01
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 2013-10-25
    • 1970-01-01
    相关资源
    最近更新 更多