如何在asp.net Core 2.0中使用ResponseCache

5
我尝试按照这里的答案(最高票,未被接受)here 实现在我的 asp.net core 2.0 项目中使用 ResponseCaching。然而我遇到了以下错误:

InvalidOperationException: Cannot resolve scoped service 'Microsoft.AspNetCore.ResponseCaching.Internal.IResponseCachingPolicyProvider' from root provider. Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator.ValidateResolution(Type serviceType, ServiceProvider serviceProvider)

我所采取的步骤如下:
1. 在 Startup 中添加接口绑定:
    services.AddScoped<IResponseCachingPolicyProvider, ResponseCachingPolicyProvider>();

2 将响应缓存中间件添加如下:

    public void Configure(IApplicationBuilder application)
{
    application
        .UseResponseCaching()
        .UseMvc();
}

3 将标签添加到我的控制器中,如下所示:

 [ResponseCache(Duration = 3600)]

我正在尝试获得与以前的asp.net版本中添加[OutputCache(NoStore = true, Duration = 0)]相同的行为。

1个回答

2

谢谢,就这样了吗?我不需要删除或编辑我迄今为止添加的任何内容(请参见三个步骤)吗?因为仅仅添加那些内容,我仍然会得到相同的错误。 - Green_qaue
你可以跳过步骤1,因为扩展方法也会执行它。 - juunas
1
因为它实际上需要是单例作用域。它在响应缓存中间件构造函数中得到解析,该构造函数仅运行一次。 - juunas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接