Visual StudioでWebApi .Net Core 2.0テンプレートから新しいソリューションを作成しました。 私は起動時に以下を追加しました。ASP.NET Core 2.0 - HTTPレスポンスキャッシュミドルウェア - 何もキャッシュされていない
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddHttpCacheHeaders(opt => opt.MaxAge = 600);
services.AddResponseCaching();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseResponseCaching();
app.UseHttpCacheHeaders();
app.UseMvc();
}
その後、郵便配達で、私は、テンプレートによって作成されたエンドポイントがあるhttp://localhost:xxxx/api/values
を打つ、それがポストマンの設定で、私はポストマンはキャッシュなしのヘッダーを送信しないことを確認しました["value1","value2"]
注意を(返します)。
HttCacheHeaders
のサービスは、repoです。 HTTPキャッシュヘッダーを追加します。だから私のエンドポイントレスポンスヘッダは次のとおりです。
- のCache-Control:公共、最大エージング= 600
- のContent-Type:アプリケーション/ JSON。文字セット= UTF-8
- 日:金、2017年9月29日午前14時02分29秒GMT
- のETag:C5DFA8974BB722D27E71EE50D3D14625
- 有効期限:最終修飾金、2017年9月29日午前14時03分29秒GMT
- を:金は、2017年9月29日14時02分29秒GMT
- サーバー:ケストレル
- 転送 - エンコード:
- チャンクヴァリ:、受け入れ言語を受け入れ、
- X-Poweredのバイエンコーディング受け入れ:ASPを。 NET
- X-SourceFiles:=?UTF-8?B ................
問題はキャッシュされないことです。 Ouput
ウィンドウのみが表示されます
だから、ASP.NET Core ResponseCaching Middleware
の使い方は少し分かりません。私はHttCacheHeaders
サービスを使用しますが、私のコントローラのアクションに[ResponseCache(Duration = 600)]
を追加しない場合
更新
は、キャッシュが動作します。
HttCacheHeaders
を使用する理由は、ETag
とLast-Modified
の場合、後で有効期限キャッシュと期限切れキャッシュを行うためです。
は、私はそれが言ったことはありません。 ASP.NET ResponseCachingは、HttpCacheHeadersでは動作しません。 –