2017-12-23 40 views
1

ASP.NET Core 2.0 웹 API에서 응답 캐싱을 얻으려고 애 쓰고 있습니다. 미들웨어에서ASP.NET 코어 응답 캐싱이 예상대로 작동하지 않습니다.

내가 추가 한 응답 캐싱 :

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

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

내 액션 메소드 코드 : 여기

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

는 우체부 요청 및 응답의 : 그래서, enter image description here

I 올바른 답변을 얻으려면 캐시 제어 응답에 http 헤더가 있지만 응답을 보내면 다시 우편 배달부에서 e, 내 작업 방법에서 여전히 내 코드를 호출합니다. 내 코드를 호출하지 않고 캐시 된 응답을 사용하기를 기대했습니다.

응답 캐싱이 작동하는 방식을 오해하고 있습니까? 어떤 도움을 주시면 감사하겠습니다.

답변

1

당신이 보내기-무 현금 헤더를 사용하지 않도록해야 우체부의 문제

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 –