Назад | Перейти на главную страницу

Настройки приложения вне web.config

Мне нужно сохранить раздел настроек рабочего приложения за пределами Web.config; Я не хочу, чтобы ключи и другая секретная информация хранились в репозитории исходного кода. Однако, если я редактирую настройки приложения с помощью IIS Mananger, он изменяет файл Web.config, который будет перезаписан при следующем развертывании.

Как я могу сохранить эти настройки вне Web.config, который поставляется с приложением при развертывании? Например, это каким-то образом делается на веб-сайтах Azure - настройки приложения, которые вы настраиваете на портале, не хранятся в Web.config - что можно подтвердить, загрузив файл через FTP. Как это делается?

Для узлов appSettings и connectionStrings в web.config вы можете переместить их в отдельные файлы вне web.config.

В вашем web.config у вас будет:

<appSettings configSource="appsettings.config"></appSettings>

а затем новый файл appsettings.config:

 <?xml version="1.0"?>
 <appSettings>
     <add key="foo" value="bar" /> 
 </appSettings>

Затем вы должны убедиться, что вы не развертываете эти новые файлы и не храните их разными на рабочем сервере и в среде разработки.

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

Помимо файла (ов) web.config на ваших сайтах существует несколько глобальных настроек для IIS.

%systemroot%\System32\inetsrv\config\applicationHost.config

имеет все глобальные настройки IIS, в зависимости от вашего Feature Delegation эти настройки могут быть перезаписаны в ваших локальных файлах web.config. Но вы можете предотвратить это, установив для функции значение «Только чтение» в делегировании функций на уровне сервера.

Для настроек, связанных с dot.NET, есть два глобальных файла:

%systemroot%\Microsoft.NET\Framework??\v?.?.????\CONFIG\machine.config
%systemroot%\Microsoft.NET\Framework??\v?.?.????\CONFIG\web.config

Существует несколько версий этих файлов, по одной для каждой версии фреймворка для каждой платформы ОС.

Все настройки, сделанные в этих файлах, наследуются вашим локальным файлом web.config.

Однако я не думаю, что есть способ предотвратить переопределение локальным файлом web.config настроек, установленных в глобальных файлах.