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

Gre*_*aue 5 c# asp.net asp.net-core

我想答案(最高投票,不接受)发现下列这里实现ResponseCaching我的asp.net 2.0的核心项目。

但是我得到了错误:

InvalidOperationException:无法从根提供程序解析作用域服务'Microsoft.AspNetCore.ResponseCaching.Internal.IResponseCachingPolicyProvider'。Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator.ValidateResolution(类型serviceType,ServiceProvider serviceProvider)

我采取的步骤是:

1像这样在Startup中添加Interface绑定:

    services.AddScoped<IResponseCachingPolicyProvider, ResponseCachingPolicyProvider>();
Run Code Online (Sandbox Code Playgroud)

2像这样添加响应缓存中间件:

    public void Configure(IApplicationBuilder application)
{
    application
        .UseResponseCaching()
        .UseMvc();
}
Run Code Online (Sandbox Code Playgroud)

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

 [ResponseCache(Duration = 3600)]
Run Code Online (Sandbox Code Playgroud)

我试图获得与添加[OutputCache(NoStore = true, Duration = 0)]过去ASP.NET版本中的Wouldve 相同的行为。

juu*_*nas 2

要添加响应缓存所需的服务,您应该在类中使用此扩展ConfigureServices方法Startup

services.AddResponseCaching();
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看其源代码:https://github.com/aspnet/ResponseCaching/blob/dev/src/Microsoft.AspNetCore.ResponseCaching/ResponseCachingServicesExtensions.cs#L21