AspNetCore 3 中的意外 "Cache entry must specify a value for Size when SizeLimit is set" 消息

Unexpected "Cache entry must specify a value for Size when SizeLimit is set" message in AspNetCore 3

今天更新到 AspNetCore 3 之前一切正常。

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

我使用 services.AddMemoryCache(); 将它添加到我的中间件并且没有设置大小,但我仍然得到错误消息:

Cache entry must specify a value for Size when SizeLimit is set.

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

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

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

这可能是在哪里设置的,这让我很困惑。?

我设法通过从 Startup.cs 中的 ConfigureServices() 方法中删除对 AddEntityFrameworkSqlServer() 的调用来阻止抛出此异常:

public class Startup
{
   ...

   public void ConfigureServices(IServiceCollection services)
   {
      ...

      services
         .AddEntityFrameworkSqlServer() // <-- Removed this
         .AddDbContext<MyContext>(options =>
            options.UseSqlServer(...)
         )

      ...
   }

   ...
}

显然正在调用 AddEntityFrameworkSqlServer() is no longer needed in EF Core 3:

Calling this method is no longer necessary when building most applications, including those that use dependency injection in ASP.NET or elsewhere.

感谢 @Simon_Weaver 提供有关 EF Core 的线索!