Ho creato un'applicazione di console e un file app.config e il file Connections.config. Il file app.config ha una fonte di proprietà ConnectionString che punta alla Connections.configLettura stringa di connessione da file di configurazione esterno
Quando ho provato a leggere la stringa di connessione nella domanda, ho ottenere un ConfigurationErrorException
Questo è il mio metodo principale.
static void Main(string[] args)
{
var settings = ConfigurationManager.ConnectionStrings;
if (settings != null)
{
foreach (ConnectionStringSettings setting in settings)
{
Console.WriteLine(setting.ConnectionString);
}
}
}
App.config del file
<?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>
Qui ho osservato due cose. Primo: Se si specifica configSource, non riesco a leggere la stringa di connessione (eccezione di lancio)
Secondo: Se inserisco la stessa stringa di connessione nel file App.config e ho provato a leggere, il codice funziona ma si collegano due volte stringa (che dovrebbe essere di ritorno unico che è stringa vuota) La prima stringa di connessione è stringa di connessione sqlexpress simili seconda stringa di connessione
data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
che ritorni è stringa vuota (questo è previsto).
Voglio leggere la stringa di connessione da un file esterno come nel mio scenario. Come farlo? Cosa mi manca qui?
L'azione di compilazione non è obbligatoria, se Copia nella directory di output è impostata su * copia sempre * o * copia se più recente *, l'azione di default è impostata su Contenuto. Altrimenti ha risposto bene - +1 –
Buon punto, non lo sapevo. –