Abbiamo un sito Web ASP.NET che utilizza lo stato sessione di SQL Server. Lo stato è configurata in Web.config
come:Configura stato sessione ASP.NET in fase di esecuzione
<sessionState mode="SQLServer" sqlConnectionString="data source=TheServer;
User ID=TheUser;password=ThePassword;" cookieless="false" timeout="480"/>
ma ci sono tre ambienti (sviluppo/staging/produzione). Tutte le altre stringhe di connessione sono configurate come:
<configuration>
<connectionStrings>
<add name="Development_Db1" connectionString="..."/>
<add name="Production_Db1" connectionString="..."/>
</connectionStrings>
</configuration>
In fase di esecuzione, ne selezioniamo uno per connettersi al database in base al nome host. Sfortunatamente, la stringa di connessione Session State sembra codificata in modo rigido in web.config
.
Esiste un modo per configurare lo stato della sessione di SQL Server in fase di esecuzione o fare riferimento a una stringa di connessione dalla sezione connectionStrings
?
Quindi in pratica si hanno le informazioni di tutti gli ambienti in un unico file di configurazione? Non vuoi usare un file per ambiente? –
@ GôTô: Sì, tutte le informazioni per tutti gli ambienti si trovano in un unico file di configurazione. Lavorando su un sistema relativamente vecchio qui, il mio compito è quello di passare dallo stato in-process allo stato sqlserver. – Andomar
Questa è una buona domanda in generale, ma non mi piace l'idea di mantenere tutte le stringhe di connessione in un unico punto. Troppe possibilità che la produzione scriva in ambiente di sviluppo o viceversa ... – RedFilter