2010-06-11 3 views
13

dovrebbe essere semplice, ma qualunque cosa provo restituisce null:Come leggere la sezione system.web da web.config

const string key = "system.web"; 

var sectionTry1 = WebConfigurationManager.GetSection(key); 

var sectionTry2 = ConfigurationManager.GetSection(key); 

sono sicuro che ho fatto prima.

Sto utilizzando MVC se questo fa la differenza.

risposta

23

Era un idiota: system.web non è una sezione di configurazione ma un gruppo di configurazione. Se cambio la chiave in una sezione effettiva, entrambi i metodi funzionano correttamente. Ecco quella che utilizza ConfigurationManager:

const string outputCacheSettingsKey = "system.web/caching/outputCacheSettings";   

var outputCacheSettingsSection = ConfigurationManager.GetSection(outputCacheSettingsKey) as OutputCacheSettingsSection; 
+0

Per la registrazione lo stesso funziona se è necessario ottenere la sezione della compilation, tranne per il fatto che la si esegue in 'CompilationSection' –

5

Penso che l'accesso a system.web sia leggermente diverso dall'accesso a appSettings.

Prova questa:

string configPath = "/MyAppRoot"; 

Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath); 

IdentitySection section = (IdentitySection)config.GetSection("system.web/identity"); 

È necessario lanciare relativa sezione system.web si sta cercando di accedere a un determinato tipo.

+0

In primo luogo, verificare se 'system.web/identity' *** esiste sezione ***? – Kiquenet

4

Questo ha funzionato per me:

public Int32 GetmaxRequestLength() 
{ 
    // Set the maximum file size for uploads in bytes. 
    var section = ConfigurationManager.GetSection("system.web/httpRuntime") as HttpRuntimeSection; 
    // return length converted to kbytes or return default value as specified 
    return (Int32) Math.Round((decimal)(section != null ? (double)section.MaxRequestLength * 1024/1000 : 5.120), 2); 
} 
+0

' ConfigurationManager.GetSection' legge *** machine.config *** o *** web.config ** *? Voglio solo leggere *** web.config *** – Kiquenet