Question

ConfigurationManager.AppSettings Caching

We know that IIS caches ConfigurationManager.AppSettings so it reads the disk only once until the web.config is changed. This is done for performance purposes.

Someone at:

http://forums.asp.net/p/1080926/1598469.aspx#1598469

stated that .NET Framework doesn't do the same for app.config, but it reads from the disk for every request. But I find it hard to believe, 'cause it would be slower. Please tell me that he is wrong or I'll have to fix every Console/Windows Forms/Windows Services I wrote.

Update I regret that I misinterpreted what people said in the linked forum above.

 45  21313  45
1 Jan 1970

Solution

 50

A quick test seems to show that these settings are only loaded at application startup.

//edit the config file now.
Console.ReadLine();

Console.WriteLine(ConfigurationManager.AppSettings["ApplicationName"].ToString());
Console.WriteLine("Press enter to redisplay");

//edit the config file again now.
Console.ReadLine();
Console.WriteLine(ConfigurationManager.AppSettings["ApplicationName"].ToString());
Console.ReadLine();

You'll see that all outputs remain the same.

2008-12-23

Solution

 4

Try it,

ConfigurationManager.RefreshSection("appSettings")

Just be careful file name (in bin folder)

Normal file name : appname.exe.config

if debug mode : appname.vshost.exe.Config

2018-06-21