Domanda

Nella mia applicazione ASP.NET ho un file web.config. Nel file web.config ho una stringa di connessione ...

<connectionStrings>
    <add name="HRDb" connectionString="xxxxx" providerName="System.Data.SqlClient" />
</connectionStrings>

Tuttavia, quando recupero questo valore usando ConfigurationManager.ConnectionStringsp["HRDb"], ottengo la mia vecchia stringa di connessione, non quella nuova.

Dove altro (tranne web.config) ConfigurationManager legge i valori della stringa di connessione?

Sto eseguendo l'applicazione da VS.NET (non distribuito su IIS).

È stato utile?

Soluzione

Ho capito cosa non andava.

Quindi, per rispondere alla mia domanda ... ConfigurationManager legge solo da web.config.

Il mio problema era che il progetto era configurato per utilizzare un server Web IIS durante l'esecuzione del progetto anziché utilizzare il server di sviluppo di Visual Studio. Quindi, in effetti, stavo eseguendo una vecchia versione della mia applicazione. Silly.

Altri suggerimenti

È anche possibile, sebbene improbabile, che tu abbia una stringa di connessione definita in un " parent " web.config in una cartella sopra la cartella corrente o anche in machine.config. Prova ad aggiungere un <clear /> elemento prima dell'elemento <add>.

Dov'era memorizzato il valore "vecchio"? Si trova in un file di configurazione diverso? Il gestore della configurazione dovrebbe estrarre solo dai file di configurazione, ma possono esserci più file per un'applicazione. Parte del processo di compilazione viene copiato in un vecchio file?

Ho avuto un problema simile, in cui la soluzione era che stavo tenendo il web.config sbagliato, uno che è stato generato da Visual Studio durante l'aggiunta di un file o giù di lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top