2013-03-06 4 views
13

「有効期限」が有効なHTTP応答ヘッダータイプであることは間違いありません。私は私のコードでそれを設定しようとすると、しかし:ExpiresレスポンスヘッダーをWebAPIアクションレスポンスに追加するにはどうすればよいですか?

と、InvalidOperationException:誤用ヘッダ名(これはActionFilter.OnActionExecuted方法である)

actionExecutedContext.Response.Headers.Add("Expires", (DateTime.Now + Timespan.FromDays(7)).ToString("R")); 

私は例外で終わります。リクエスト ヘッダーがHttpRequestMessageで使用され、応答ヘッダーが HttpResponseMessageで、コンテンツヘッダーがHttpContentオブジェクトで使用されていることを確認してください。

答えて

22

Expiresはコンテンツヘッダーです。代わりにこれを試してみてください:

actionExecutedContext.Response.Content.Headers.Expires = DateTimeOffset.Now.AddDays(7); 
+0

を試してみてください?私はこれまでにそれを見たことがないし、私のサーバーの応答の他のすべてのヘッダーと同じに見えます.... –

+3

それは同じです。しかし、これは単にコンテンツの本文に関連するヘッダです。したがって、コンテンツはこれらのヘッダーを制御します。 –

+0

@YoussefMoussaoui私はこれを試してみると 'Expires:-1'を返します。 – Azimuth

0

はHTTPコンテンツヘッダーで何

response.Content.Headers.Expires = DateTimeOffset.Now.AddDays(7); 
関連する問題