在开发环境中运行ASP.NET核心应用程序时,我想禁用缓存。我该怎么办?
我要在“启动”中设置缓存:
services.AddMemoryCache();
我想在使用<cache>
标签的模板中禁用缓存:
<cache expires-after="@TimeSpan.FromSeconds(3600)">
答案 0 :(得分:0)
您可以简单地将IHostingEnvironment
注入到Startup.cs
的启动构造函数中
像
private readonly IHostingEnvironment _environment;
public Startup(IConfiguration configuration,IHostingEnvironment environment)
{
_environment = environment;
Configuration = configuration;
}
然后,您可以在configures服务方法中使用私有的IHostingEnvironment
。
public void ConfigureServices(IServiceCollection services)
{
if(!_environment.IsDevelopment())
services.AddMemoryCache();
}
编辑:
重新阅读问题后,也应禁用缓存标签。
我建议在您的appsettings.devlopment.json
内添加一个名为"PageCachingEnabled": "false"
的标志。
在视图上,我将像这样注入配置
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration
<cache enabled=@Boolean.Parse(Configuration["PageCachingEnabled"]) expires-after="@TimeSpan.FromSeconds(3600)">
答案 1 :(得分:0)
诀窍是在开发中使用services.AddDistributedMemoryCache();
,这会将正在运行的系统的内存用作缓存。
if(Env.IsDevelopment()) {
services.AddDistributedMemoryCache();
} else {
services.AddStackExchangeRedisCache();
}