.net RefreshSection不能与web.config一起使用,但可以与app.config一起使用

mqxuamgl  于 2022-11-26  发布在  .NET
关注(0)|答案(1)|浏览(139)

我在一个控制台应用程序中做了一些测试,一切正常。
呼叫后:

ConfigurationManager.RefreshSection("appSettings");

我可以使用ConfigurationManager.AppSettings访问设置,并收到新值。
不幸的是,使用网站似乎不工作,我继续阅读旧的价值观。
当然,我使用ExternalWeb.config来避免站点重新开始更改Web.config:

<appSettings file="ExternalWeb.config">

无论如何,这是我使用App.config做的相同配置,在这种情况下工作。
是否可以将ConfigurationManager.RefreshSection与Web配置一起使用?如果可以,问题出在哪里?
我使用的是.Net Framework 4.8。

nhaq1z21

nhaq1z211#

经过一些研究确认,ConfigurationManager.RefreshSection不能与Web应用程序一起使用。
我找到了一个解决方案,可以适合我的需要,我想分享,以帮助其他人可以有类似的问题。
https://learn.microsoft.com/it-it/dotnet/api/system.web.configuration.webconfigurationmanager.openwebconfiguration

string file = @"/ExternalWeb.config";
System.Configuration.Configuration config =
       WebConfigurationManager.OpenWebConfiguration(file)
       as System.Configuration.Configuration;

KeyValueConfigurationCollection appSettings =
     config.AppSettings.Settings;

string keys = string.Empty;
foreach (string key in appSettings.AllKeys)
{
    keys = keys + key + "_" + appSettings[key].Value +"\r\n"; 
}

通过这种方式,我可以读取我的外部Web配置(我不希望Web应用程序在更改后重新加载,所以我更喜欢更改外部配置)

相关问题