加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET Core 2.0 Web API响应缓存

发布时间:2020-12-16 04:05:18 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试使用“Microsoft.AspNetCore.ResponseCaching”包在我的web api中实现响应缓存. 我正在使用Postman测试应用程序并验证标题等. 使用指定的max-age生成正确的标头但邮递员似乎从api请求响应而不使用缓存.响应时间根本没有变化,如果我调试控制器,我可
我正在尝试使用“Microsoft.AspNetCore.ResponseCaching”包在我的web api中实现响应缓存.

我正在使用Postman测试应用程序并验证标题等.

使用指定的max-age生成正确的标头但邮递员似乎从api请求响应而不使用缓存.响应时间根本没有变化,如果我调试控制器,我可以看到它每次都被请求命中.

启动类ConfigureServices(以及其他东西):

services.AddResponseCaching();

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

app.UseResponseCaching();

 app.UseMvc();

控制器动作:

[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));
    }

邮递员的回复标题:

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

解决方法

修复了这个问题.上面的代码没问题!
邮差阻止了一个环境的缓存.

要解决此问题,请转到邮递员设置:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读