我创建了一个控制台应用程序以及一个app.config文件和Connections.config文件。 app.config文件具有指向Connections.config的connectionstring属性源。
当我尝试在应用程序中读取连接字符串时,我收到了ConfigurationErrorException错误。
这是我的主方法。
static void Main(string[] args)
{
var settings = ConfigurationManager.ConnectionStrings;
if (settings != null)
{
foreach (ConnectionStringSettings setting in settings)
{
Console.WriteLine(setting.ConnectionString);
}
}
}
应用程序配置文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings configSource="Connections.config"></connectionStrings>
</configuration>
Connections.config 文件
<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
<add name="SQLDBConnecion"
providerName="System.Data.ProviderName"
connectionString="" />
</connectionStrings>
我观察到了两件事。 第一,如果我指定了configSource,我将无法读取连接字符串(会抛出异常)。
第二,如果我将相同的连接字符串放在App.config文件中并尝试读取它,则代码可以正常工作,但会得到两个连接字符串(应该只返回一个空字符串),第一个连接字符串是像这样的sqlexpress连接字符串
data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
返回的第二个连接字符串为空字符串(这是预期的)。
我希望能够从外部文件中读取连接字符串,就像在我的情况下一样。如何做到这一点?我错过了什么?