2009-08-25 9 views
5

Perché c'è un'altra sezione chiamata connectionStrings? Ho sempre e solo usato appSettings, fino a quando ho notato questo in un nuovo progetto:Differenza tra appSettings e connectionStrings nel file Web.config?

<appSettings> 
<add key="SqlConnString" value="server=ABC;database=ABC;uid=A;pwd=B;"/> 
</appSettings> 

<connectionStrings>  
</connectionStrings> 

C'è una differenza? Qualche motivo per cui dovrei usarne uno sull'altro?

risposta

9

Dal documentation:

L'elemento connectionStrings specifica una raccolta di dati stringhe di connessione, come nome/valore coppie, per le applicazioni ASP.NET e caratteristiche.

Nelle versioni precedenti di ASP.NET, le stringhe di connessione sono state memorizzate nelle appSettings . In ASP.NET 2.0, le funzioni come Sessione, appartenenza, Personalization e Role Manager, si basano su stringhe di connessione che sono memorizzate nell'elemento connectionStrings . È inoltre possibile utilizzare l'elemento connectionStrings per memorizzare le stringhe di connessione per le proprie applicazioni .

Quindi l'unica vera differenza è che le funzionalità ASP.NET 2.0 integrate si aspettano che le loro stringhe di connessione si trovino nell'area connectionStrings.

+0

impostazioni dell'applicazione Perché non potevano sessione, l'appartenenza, personalizzazione e Role Manager solo hanno sfruttato? Quali ulteriori funzionalità le stringhe di connessione forniscono che le impostazioni dell'app non lo fanno? – Paul

2

Se si separano le stringhe di connessione nella sezione <connectionStrings>, la configurazione sarà più semplice da leggere, gestire e gestire.

Inoltre, è possibile aumentare la sicurezza crittografando solo le stringhe di connessione poiché quelle in genere sono gli elementi sensibili e, se si trovano nella propria sezione, è possibile semplicemente crittografare quella sezione e lasciare il resto di app.config in formato testo, in modo da poter aggiornare e modificare facilmente le impostazioni.

Marc

+0

È possibile crittografare facilmente le impostazioni dell'app. Per quanto riguarda la separazione, posso pensare a molti modi diversi di organizzare le app oltre alle stringhe di connessione e alle appettings. Spero che ci sia stato dell'altro nella decisione di MSFT di introdurre questa separazione rispetto a ciò che ha menzionato Eric. Questo sembra arbitrario altrimenti. – Paul

+0

Inoltre, questa decisione sembra avere strani effetti collaterali oggi. Nei piani di servizio app di Azure, è possibile configurare le impostazioni dell'applicazione (impostazioni dell'app e stringhe di connessione). Tuttavia, la configurazione dell'applicazione non sovrascrive le impostazioni dell'app app.config mentre le stringhe di connessione sovrascrivono le stringhe di connessione app.config. Per questo motivo, ora inserisco le stringhe di connessione senza connessione nelle stringhe di connessione semplicemente per la capacità di ignorare le stringhe di connessione. Non trovo questo più facile da leggere, mantenere o gestire. – Paul

+0

@Paul - Le impostazioni dell'applicazione impostate nel portale DO sovrascrivono appSettings nel web.config del tuo sito web o nel file app.config del tuo webjob. Lo uso sempre. – Tim

Problemi correlati