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
的大小(见图)。
问题是我已经找了一个小时了,但我不知道这是在哪里设置的。我的代码中没有任何地方有 SizeLimit
或 10240
- 包括配置文件。
当我改用 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 的线索!
今天更新到 AspNetCore 3 之前一切正常。
我正在使用依赖注入的内存缓存 (IMemoryCache cache
)。
我使用 services.AddMemoryCache();
将它添加到我的中间件并且没有设置大小,但我仍然得到错误消息:
Cache entry must specify a value for Size when SizeLimit is set.
当我检查 MemoryCache
的实例时,它确实设置了 10240
的大小(见图)。
问题是我已经找了一个小时了,但我不知道这是在哪里设置的。我的代码中没有任何地方有 SizeLimit
或 10240
- 包括配置文件。
当我改用 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 的线索!