AspNetCore 3中出现意外的“设置SizeLimit时,缓存条目必须为Size指定一个值”

时间:2019-10-16 05:13:56

标签: asp.net-core memorycache

因此,在今天更新到AspNetCore 3之前,一切都很好。

我正在使用具有依赖项注入(IMemoryCache cache)的内存缓存。

我使用services.AddMemoryCache(); 将其添加到我的中间件中,但没有设置大小,但最终还是出现错误消息:

  

设置SizeLimit时,缓存条目必须为Size指定一个值。

当我检查MemoryCache的实例时,它的确设置为10240的大小(参见图片)。

问题是我一直在找一个小时,却不知道该在哪里设置。在我的代码中的任何地方都没有SizeLimit10240-包括配置文件。

当我改用app.UseEndpoints而不是app.UseMvc()时,它似乎已经开始-但我已经做了很多不确定的事情。

这可能在什么地方让我迷惑??

enter image description here

1 个答案:

答案 0 :(得分:4)

我设法通过从AddEntityFrameworkSqlServer()的{​​{1}}方法中删除对ConfigureServices()的调用来阻止抛出此异常:

Startup.cs

显然正在呼叫public class Startup { ... public void ConfigureServices(IServiceCollection services) { ... services .AddEntityFrameworkSqlServer() // <-- Removed this .AddDbContext<MyContext>(options => options.UseSqlServer(...) ) ... } ... } is no longer needed in EF Core 3

  

在构建大多数应用程序时,包括在ASP.NET或其他地方使用依赖注入的应用程序时,不再需要调用此方法。

感谢 @Simon_Weaver 关于EF Core的线索!