Как насчет ключа / значения appsetting "mode".Этот «режим» может быть установлен на «dev», «testing», «prod» и т. Д. Затем установите режим текущего файла конфигурации и добавьте к нему все параметры, которые будут меняться вместе с режимом.
Пример:
<add key="mode" value="test" /> <!-- possible values: dev, test, prod -->
<add key="dev.dbconnstr" value="data source=DB;userid=ABC;password=DEF" />
<add key="test.dbconnstr" value="data source=DB;userid=ABC;password=DEF" />
<add key="prod.dbconnstr" value="data source=DB;userid=###;password=###" />
Затем используйте класс конфигурации для считывания настройки в зависимости от режима.
Пример:
mode = ConfigurationManager.AppSettings("mode");
CongifurationManager.AppSettings(mode + ".dbconnstr");
Делая это таким образом, вы можетеиметь один и тот же файл конфигурации, развернутый на всех серверах, и вам никогда не придется беспокоиться о настройке каждого сервера (за исключением, конечно, обновления значения «mode» при развертывании).Я также рекомендовал бы не сохранять производственные учетные данные в других файлах конфигурации, а заменить их вместо заполнителя.