我saw在asp.net旧版本中,编辑配置会导致回收。 (所以我们为动态配置实现了自己的库,以避免回收)。
现在我正在编写新的asp.net核心应用程序,如果使用内置配置(例如:
),我还没有看到任何有回收的地方.AddJsonFile("appsettings.json", optional: true, **reloadOnChange: true**)
那么,我可以在不预期停机的情况下使用它吗?
答案 0 :(得分:2)
AFAIK,编辑配置不会导致IIS回收。其中一个原因可能是IIS现在仅仅作为a reverse proxy,并且应用程序本身作为使用Kestrel HTTP服务器的单独进程运行(如果您使用Kestrel)。
如果你需要抓住时机,当配置发生变化时,你可以使用配置重新加载令牌(Microsoft.Extensions.Configuration.ConfigurationReloadToken):
var config = builder.Build();
var token = config.GetReloadToken();
token.RegisterChangeCallback(_ =>
{
Console.WriteLine("Changed");
}, null);
但是请注意,令牌只会触发一次,因此如果需要,需要在回调中使用代码。