因此,在今天更新到AspNetCore 3之前,一切都很好。
我正在使用具有依赖项注入(IMemoryCache cache
)的内存缓存。
我使用services.AddMemoryCache();
将其添加到我的中间件中,但没有设置大小,但最终还是出现错误消息:
设置SizeLimit时,缓存条目必须为Size指定一个值。
当我检查MemoryCache
的实例时,它的确设置为10240
的大小(参见图片)。
问题是我一直在找一个小时,却不知道该在哪里设置。在我的代码中的任何地方都没有SizeLimit
或10240
-包括配置文件。
当我改用app.UseEndpoints
而不是app.UseMvc()
时,它似乎已经开始-但我已经做了很多不确定的事情。
这可能在什么地方让我迷惑??
答案 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的线索!