2009-06-04 2 views
2

У меня есть некоторые настройки в файле web.config, который я хочу переопределить, когда я тестирую приложение ASP.NET локально на своей машине. Основная часть выглядит следующим образом:В Visual Studio 2008 - как долго до изменения web.config «берет»?

<appSettings file="WebAppSettings.config"> 
    <add key="DEBUG" value ="False"/> 
    <add key="PROD" value="TrueInMainConfigFile"/> 
    </appSettings> 

Теперь в моем местном «WebAppSettings.config» У меня есть:

<appSettings> 
    <remove key="DEBUG"/> 
    <remove key="PROD"/> 
    <add key="DEBUG" value ="True"/> 
    <add key="PROD" value="False"/> 
</appSettings> 

Я просто изменил значение «PROD» от Верного Ложных и сохранен файл. Тем не менее, когда я перестраиваю и запускаю сайт (опять же, на моей локальной машине с IIS, а не Cassini), значение System.Configuration.ConfigurationManager.AppSettings («PROD») все равно возвращает «True» вместо «False».

Иногда позволяя ему «сидеть долго», решает эту проблему. Однако, по большей части, мне нужно закрыть и повторно открыть VS2008, чтобы получить новое значение «взять».

Что здесь происходит?

+0

Это странно. Я всегда находил, что изменения web.config вступают в силу немедленно. Мне будет интересно увидеть ответ. – atfergs

ответ

4

Если вы обновите web.config, следующий сеанс начнет использовать новые значения. Если вы обновляете дополнительный файл, это может быть причиной того, что вы его не видите. Попробуйте изменить что-либо в файле web.config, например, добавить пробел и сохранить файл.

+0

Это ТОЧНО причина. Я изменил вторичный файл, и новое значение не было отражено. Когда я изменил фактический файл web.config, он перезагрузил все, включая новое значение из вторичного файла. Итак, теперь у меня есть новая «гочка», чтобы следить за ней в Visual Studio - при редактировании вторичных файлов веб-конфигурации всегда убедитесь, что вы принудительно перезагрузите основной файл web.config - все, что заставляет файл быть сохраненным - как вы предположили, добавление пространства было достаточно. – David

1

Если я перезагружаю сайт, когда работаю с IIS, любые изменения распространяются немедленно. Не знаете, что вам сказать.

2

Изменение в web.config принимает:

  • В Visual Studio, в следующий раз, когда вы запускаете (F5)
  • Производство/прямая редактирования - в следующий раз, вы вызываете appilcation

Динамическое построение происходит, когда система обнаруживает изменение в вашей папке \ bin или файле конфигурации.

0

Сохранение файла Web.config переработает приложение и загрузит новые значения. Вы уверены, что изменили правильный файл? Комментарий «с IIS, а не Cassini» «может означать, что у вас есть опубликованная/отдельная версия в IIS?

Надеюсь, это поможет!

0

Изменение web.config перерабатывает пул приложений AppDomain, поэтому изменения должны быть немедленно отображены.

Вы вносите изменения в web.config в приложении? Если это так история отличается тем, что web.config кэшируется

Так у вас есть несколько вариантов

1) имеют этот параметр в другом файле 2) использовать ConfigurationManager.AppSettings [ «MyAppSetting»] Я помню некоторые версия ConfigurationManager устарела, но есть замена, о да, и вы должны обновить раздел

Надеется, что это помогает

5

ли вы внести изменения в web.config или WebAppSettings.config? Изменение в web.config немедленно перерабатывает AppDomain, что приводит к использованию новых значений, как только они будут запрошены. Изменение в WebAppSettings.config ничего не делает.

 Смежные вопросы

  • Нет связанных вопросов^_^