Подтвердить что ты не робот

Кэширование ConfigurationManager.AppSettings

Мы знаем, что IIS кэширует ConfigurationManager.AppSettings, поэтому он читает диск только один раз, пока не изменится web.config. Это делается для достижения целей.

Кто-то на:

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

заявил, что .NET Framework не делает то же самое для app.config, но читает с диска для каждого запроса. Но мне трудно поверить, потому что это будет медленнее. Скажите, пожалуйста, что он не прав или мне придется исправить все созданные Консоль /Windows Forms/Windows Services.

Обновление Я сожалею, что неправильно истолковал то, что говорили люди на связанном форуме.

4b9b3361

Ответ 1

Быстрый тест показывает, что эти настройки загружаются только при запуске приложения.

//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();

Вы увидите, что все выходы остаются неизменными.

Ответ 2

Он читает файл конфигурации приложения (MyApp.exe.config) один раз при запуске приложения, так как его можно легко проверить, изменив файл во время работы приложения.

Комментарий в сообщении форума, на который ссылается OP:

Значения для Web.config: хранится в кеше/памяти, когда приложение начинает поэтому, почему приложение перезапускается, когда вносятся какие-либо изменения в web.config. Обратите внимание, что это только применяется к Web.config, любому другому Доступны файлы .config с диска по умолчанию

Я бы интерпретировал этот комментарий как означающий, что файлы конфигурации, отличные от web.config в приложении ASP.NET, получают доступ с диска по умолчанию. Аналогично, файлы конфигурации, отличные от MyApp.exe.config в приложении WinForms/Console, доступны с диска по умолчанию.

В этом комментарии не указано, что файл MyApp.exe.config по умолчанию считывается с диска.

Ответ 3

Неважно, если это так или нет. Не исправляйте проблемы с производительностью, если их нет.

Ответ 5

Как говорит Джон, только потратьте больше времени на это, если вы действительно видите удар производительности.

Также я уверен, что эти приложения содержат конфигурацию в памяти, и для просмотра любых изменений в конфигурации приложение должно быть перезагружено.. p >

Для некоторых дальнейшее чтение о оставшихся тайнах.