【发布时间】:2018-06-27 06:23:08
【问题描述】:
目前我正在开发一个 .net core 2 应用程序,该应用程序应该根据域在每个请求上从 appsettings.json 读取一些键。 (我不得不提一下,我有一个包含 3 个共享相同 appsettings.json 的项目的解决方案)我担心 appsettings.json 文件在每个请求上的读取时间。应用程序启动时是否会缓存此文件?我的启动构造如下:
public IConfiguration Configuration { get; }
private readonly ILoggerFactory _logger;
public Startup(IHostingEnvironment env, ILoggerFactory logger)
{
string settingPath = Path.GetFullPath(Path.Combine(@"../SharedConfig/globalAppSettings.json"));
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile(settingPath)
.AddEnvironmentVariables();
Configuration = builder.Build();
_logger = logger;
}
【问题讨论】:
-
为什么不把配置放在
static变量、Application会话或MemoryCache中? -
不知道是不是自动缓存,
-
我不这么认为,但我习惯了aspnet,而不是core。但是在
Startup中输入一个登录信息,看看是否每个请求都会调用它。 -
reload on change 有一个选项的事实表明它被读取一次然后被缓存。
-
它是缓存的,它并不昂贵,而且它实际上是正确场景下的一个非常好的实践。例如,假设您有一些配置数据,或者您的应用程序期望输入可能会发生变化。每次您想更改这些值时,您都必须重新编译您的应用程序。使用 appsettings.json,您只需更改它们,瞧!
标签: asp.net caching asp.net-core asp.net-core-2.0