Как получить ТОЛЬКО строки подключения из app.config / web.config, а не machine.config? - PullRequest
0 голосов
/ 28 сентября 2018

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

В machine.config есть строка подключения, которая называется "LocalSqlServer";поставщик по умолчанию (как и ожидалось) - «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;
1030 *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;
* 35 возвращает соединения и 1033 *1034* 1035 C: \ TFS \ Dev \ Main \ Apps \ Clientes \ IntegracionEAI \ bin \ Debug \ IntegracionEAI.exe.Config

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

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

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

...