2017-12-23 24 views
1

ASP.NET Core 2.0 Web APIで応答キャッシュを取得するのに苦労しています。ASP.NETコア応答キャッシュが期待通りに動作しない

私はミドルウェアで応答キャッシュを追加しました:

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddResponseCaching(); 
    ... 
} 

public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
{ 
    app.UseResponseCaching(); 
    ... 
} 

をここに私のアクションメソッドのコードは: enter image description here

私は、そう:

[ResponseCache(Duration = 30)] 
[HttpGet()] 
public IActionResult GetLookups() 
{ 
    Lookup lookups = dataRepository.GetContactLookups(); 
} 

ここで郵便配達のリクエストとレスポンスですキャッシュコントロール応答のhttpヘッダーが応答を送信する場合私は郵便配達員からもう一度、それは私のアクションメソッドで私のコードを呼び出します。私は自分のコードを呼ぶことなくキャッシュされたレスポンスを使うことを期待していました。

私はレスポンスキャッシングの仕組みを誤解していますか?どんな助けもありがとう。

答えて

1

あなたが送る-NO-現金ヘッダ(キャッシュなしヘッダーはあなたのサーバーからの新鮮な応答を取得し確認します)

ASP.NET Core 2.0 Web API Response Caching

enter image description here

+0

グレート答えを無効にする必要がポストマンとの問題。多くの頭痛を救うでしょう。ブラウザの要求にno-cache/no-storeヘッダーがある場合、RFCはこの動作をキャッシュに必要としますが、実際にはISPまたはCDNのような中間キャッシュには意味があります。コンテンツの所有者であり、変更されていないことがわかっている場合、サーバーは再レンダリングを強制されるべきではありません。ここに私が書いた拡張機能があり、このデフォルトの動作を無効にすることができます:https://github.com/speige/AspNetCore.ResponseCaching.Extensions https://www.nuget.org/packages/AspNetCore.ResponseCaching.Extensions –

関連する問題