私は(私は他のライブラリを使用して、およびフィルタ/ハンドラでこれを行うことができます実現しますが、最初のいくつかのテストをしたい)ASP.NETウェブAPIアクション内からCacheControlヘッダを実装しようとしています。ASP.NETのWeb API CacheControl
私は次のようになり帳から簡単な例を以下しています:このコードはstackoverflowの上で提供される他の回答数とほぼ同じです
var response = Request.CreateResponse<IEnumerable<string>>(HttpStatusCode.OK,emails);
response.Headers.CacheControl = new CacheControlHeaderValue();
response.Headers.CacheControl.MaxAge = TimeSpan.FromHours(1);
response.Headers.CacheControl.MustRevalidate = false;
response.Headers.CacheControl.Public = true;
return response;
。
ただし、Web APIはキャッシュコントロールヘッダーをまったく設定していません。何か案は?????
フィドラーでレスポンスを見ると、cache-controlがno-cacheに設定できるので、次のようになります。私はすべて無駄にMAXAGE、mustrevalidateや公共の値を変更しようとしている
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-MiniProfiler-Ids: ["b7bfde10-e8d3-455d-b40d-2f33eb285023"]
X-Powered-By: ASP.NET
Date: Sat, 25 May 2013 11:54:35 GMT
Content-Length: 24
...
あなたのレスポンスコードを確認してください...私のために働いています。あなたの解決策*(いくつかのAOPフィルタ?、属性?)* –
私はRadimに同意します、あなたのコードは問題ありません。 MessageHandlerはインストールされていますか? –
これがうまくいかない理由が見つかりましたか?私はwebapiを従来のMVCプロジェクトに統合しようとしているのと同じ問題にぶつかっています。 – Chad