Search code examples
asp.net.netperformancecachingconfigurationmanager

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.


Solution

  • 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.