Как получить ТОЛЬКО строки подключения из app.config/web.config, а не machine.config?

Я хочу получить ТОЛЬКО строки подключения из app.config/web.config, а не machine.config.

В machine.config есть строка подключения, которая называется LocalSqlServer msgstr "поставщик по умолчанию (как и ожидалось)" System.Data.SqlClient ", и строка подключения data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true",

В моем app.config / web.config у меня есть 3 строки подключения.

я использую

ConnectionStringSettingsCollection connections = ConfigurationManager.ConnectionStrings;

возвращает 4 соединения

var config1 = ConfigurationManager.OpenMachineConfiguration();
var cns1 = config1.ConnectionStrings.ConnectionStrings.Count;
var fp1 = config1.FilePath;   

возвращает 1 соединение и путь C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config

            config1 = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            cns1 = config1.ConnectionStrings.ConnectionStrings.Count;
            fp1 = config1.FilePath;

возвращает 4 подключения и путь C:\TFS\Dev\Main\Apps\IntegracionEAI\bin\Debug\IntegracionEAI.exe.Config

            config1 = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming);
            cns1 = config1.ConnectionStrings.ConnectionStrings.Count;
            fp1 = config1.FilePath;

возвращает 4 подключения и путь C:\Users\xxxx\AppData\Roaming\HomeServe\HomeServe.IntegracionEAI._Url_uhllpkl5hcyqnrco0j4v2tqk1ifapr5j\1.0.0.0\user.config

            config1 = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
            cns1 = config1.ConnectionStrings.ConnectionStrings.Count;
            fp1 = config1.FilePath;

возвращает 4 подключения и путь C:\Users\xxxx\AppData\Local\HomeServe\HomeServe.IntegracionEAI._Url_uhllpkl5hcyqnrco0j4v2tqk1ifapr5j\1.0.0.0\user.config

            var exePath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, AppDomain.CurrentDomain.SetupInformation.ApplicationName);
            config1 = ConfigurationManager.OpenExeConfiguration(exePath);
            cns1 = config1.ConnectionStrings.ConnectionStrings.Count;
            fp1 = config1.FilePath;

возвращает 4 соединения и путь C:\TFS\Dev\Main\Apps\Clientes\IntegracionEAI\bin\Debug\IntegracionEAI.exe.Config

Примечание: может быть другое для web.config.

Я получаю конфиг только с 3 строками соединения без строки соединения machine.config.

Примечание: я не хочу использовать <clear> в конфигурационном файле.

0 ответов

Другие вопросы по тегам