2012-03-16 67 views
7

我正在使用WCF實現的HTTP REST服務。我想適當地爲我的操作設置HTTP緩存控制標題。在WCF服務中設置HTTP緩存控制標頭

我見過幾個例子,涉及使用WebOperationContext.Current.OutgoingResponse來修改每個方法中的標題。但讓我們誠實的說,這是一個令人頭痛的問題,特別是因爲幾乎所有的操作都將使用相同的緩存控制策略(無緩存)。

我在想一定有一個優雅的方式來設置它。也許是一個ServiceBehavior的組合來設置服務級別的默認值,並且OperationBehaviors可以覆蓋某些操作?或者也許有更好的方法來做到這一點?

回答

2

WCF服務尊重Web.Config中的outputCache設置。另外,您可以指定在Web.config中定義的OutputCacheProfiles,然後指定specify which OutputCacheProfle to use at the method level with decorators

+0

我還沒有嘗試過這一點,但是我對輸出緩存的理解是它只涉及將結果保存在內存中,並且不會影響HTTP緩存控制標頭。 – 2013-08-20 18:12:57

+2

@BrianReischl OutputCacheProfiles具有可以定義爲服務器或客戶端的位置屬性。設置爲客戶端時,響應包含與OutputCacheProfile的定義匹配的HTTP Headers。 – MyItchyChin 2013-08-20 18:58:01