2013-07-04 13 views
5

Voglio dichiarare la mia stringa di connessione in IIS e ottenerla da lì. Non voglio dichiararlo nella pagina web.config. Piuttosto ho bisogno di sapere se è possibile ottenere la stringa da iis in web.config o leggerla dal file di codice. Sto usando asp.net 4.0., Codifica in C# e server IIS7.5connectionstring dichiarare in iis senza dichiarare in web.config

+0

Cosa c'è di sbagliato con 'web.config'? Cosa ti ha fatto? C'è una ragione particolare per cui non si adatta al tuo caso d'uso? – Arran

+0

Solo curioso dove pensi che la stringa di connessione in IIS possa essere memorizzata, credo 'web.config' (contento di sapere se c'è qualcos'altro) – V4Vendetta

+0

Un sacco di impostazioni specifiche del sito (es. Gestori) sono memorizzate nell ' web.config' ... Si prega di dire cosa c'è di sbagliato con la memorizzazione in web.config e come si vorrebbe memorizzare poi. – CodeCaster

risposta

3

In base a this article è possibile utilizzare l'interfaccia utente di IIS o la riga di comando per modificare la stringa di connessione, ma ciò verrà semplicemente scritto nello <connectionString> elemento nel file web.config in qualsiasi modo (a meno che non lo hai impostato per salvare altrove).

Inoltre, è possibile memorizzare in un altro file con estensione config se lo si desidera, e tirarlo nel tuo web.config in questo modo

<appSettings file="../VirtualDirectory/config/Env.config"> 
</appSettings> 

Si potrebbe quindi chiamare in questo modo nel codice:

System.Configuration.ConfigurationManager.AppSettings["DefaultConn"] 

Questo può essere molto utile se si desidera che la posizione della stringa di connessione non sia sotto il proprio sito (cioè in una directory virtuale).

+0

Grazie per la risposta. Non voglio leggerlo da un altro file web.config. Voglio leggerlo da iis senza dichiararlo in qualsiasi web.config. È possibile? – polin

+0

@polin Si può fare, dal momento che è fondamentalmente solo una riga di testo, ma vorrei raccomandarlo contro. Un'opzione che ho trovato è stata salvarla nel registro. http://stackoverflow.com/questions/1792911/storing-connection-strings-in-registry http://www.codeproject.com/Articles/3881/Working-with-Windows-Registry-using-VB-NET –

0

È necessario inserire la stringa di connessione in web.config. Mettere la stringa di connessione altrove potrebbe non essere portabile, come passare da una macchina all'altra. Hai anche la machine.config

In tutto, mettere nel web.config ed è possibile crittografare se vi preoccupate per la segretezza

Si può anche avere un file di configurazione separato per esempio db.config a cui si fa riferimento dal proprio web.config usando l'attributo configSource.

<connectionStringss configSource="Configuration\db.config" /> 
+0

Grazie per la risposta. Non voglio leggerlo da un altro file web.config. Voglio leggerlo da iis senza dichiararlo in qualsiasi web.config. È possibile? – polin

Problemi correlati