在WCF服务中设置HTTP缓存控制头

Bri*_*chl 7 asp.net rest wcf http-caching

我正在研究在WCF上实现的HTTP REST服务.我想适当地为我的操作设置HTTP缓存控制头.

我已经看到一些涉及使用WebOperationContext.Current.OutgoingResponse修改每个方法中的标头的示例.但是说实话,这是一个痛苦的屁股,特别是因为几乎所有的操作都将使用相同的缓存控制策略(无缓存).

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

MyI*_*hin 2

WCF 服务遵循Web.Config 中的outputCache设置。此外,您还可以指定 也在 Web.config 中定义的OutputCacheProfiles ,然后使用装饰器指定在方法级别使用哪个 OutputCacheProfle

  • @BrianReischl OutputCacheProfiles 有一个位置属性,可以定义为服务器或客户端。当设置为 Client 时,响应包含与 OutputCacheProfile 的定义匹配的 HTTP 标头。 (2认同)