我只希望从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;
返回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>
。