我正在玩.NET 8新的Aspire功能。
我在一个带有Razor页面的应用程序上使用了Redis缓存,并在这个例子中使用了注册来注册该高速缓存。
下面是我在AppHost项目中的代码Program.cs
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedisContainer("rediscache");
builder.AddProject<Projects.WeatherApp_Web>("frontend")
.WithReference(cache)
字符串
这里是前端项目Program.cs
中的服务注册:
var builder = WebApplication.CreateBuilder(args);
builder.AddServiceDefaults();
builder.AddRedisOutputCache("rediscache");
etc...
型
和应用程序使用情况:
var app = builder.Build();
app.UseOutputCache();
etc...
型
当然,在我的Razor页面类中,持续时间设置为5秒,仅用于测试。
[OutputCache(Duration = 5)]
型
问题是页面的内容总是更新,而不显示缓存结果。没有错误。我可以做些什么来解决这个问题?
1条答案
按热度按时间cwtwac6a1#
我最近在做类似的事情,也遇到了同样的问题。
要让该高速缓存工作,您需要在路由
app.UseRouting();
(位于前端项目的Programs.cs
中)之后调用app.UseOutputCache();
。所以你的代码应该是这样的
字符串
它会起作用的。
我可以在Microsoft文档中找到这些信息。
在Razor Pages应用程序和带控制器的应用程序中,必须在路由选择后调用路由选择OutputCache。