gpt4 book ai didi

caching - ASP.NET Core 2.0 Web API响应缓存

转载 作者:行者123 更新时间:2023-12-04 07:32:49 27 4
gpt4 key购买 nike

我正在尝试使用“Microsoft.AspNetCore.ResponseCaching”包在Web api中实现响应缓存。

我正在使用Postman来测试应用程序并验证 header 等。

正确的 header 是使用指定的最大年龄生成的,但是 postman 似乎从api请求响应,而不使用缓存。响应时间完全没有变化,如果我调试 Controller ,我会看到它每次都被请求击中。

启动类ConfigureServices(以及其他内容):

services.AddResponseCaching();

启动类Configure(以及其他内容):
 app.UseResponseCaching();

app.UseMvc();

Controller Action :
    [HttpGet("{employeeNr}", Name = EmployeeAction)]
[ResponseCache(Duration = 50)]
[Produces(typeof(EmployeeDto))]
public async Task<IActionResult> GetEmployee(SpecificEmployeeParameters parameters)
{
if (!await _employeeRepository.EmployeeExists(parameters.EmployeeNr)) return NotFound();

if (!_typeHelperService.TypeHasProperties<EmployeeDto>(parameters.Fields))
return BadRequest();

var entity = await _employeeRepository.GetEmployee(parameters.EmployeeNr);

var result = Mapper.Map<EmployeeDto>(entity);
return Ok(result.ShapeData(parameters.Fields));
}

来自 postman 的响应 header :
cache-control →private,max-age=50
content-type →application/json; charset=utf-8
date →Wed, 30 Aug 2017 11:53:06 GMT

最佳答案

解决了该问题。上面的代码没问题!
postman 通过设置阻止了缓存。

要解决此问题,请转到 postman 设置:

General -> Headers -> Send no-cache header -> Set to "OFF"

关于caching - ASP.NET Core 2.0 Web API响应缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45960082/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com