2010-06-11 11 views
13

Sollte einfach sein lesen, aber was auch immer ich versuche, den Wert null zurück:Wie system.web Abschnitt von web.config

const string key = "system.web"; 

var sectionTry1 = WebConfigurationManager.GetSection(key); 

var sectionTry2 = ConfigurationManager.GetSection(key); 

Ich bin sicher, dass ich das schon getan haben.

Ich benutze MVC, wenn dies einen Unterschied macht.

Antwort

23

War ein Idiot - system.web ist kein Konfigurationsabschnitt sondern eine Konfigurationsgruppe. Wenn ich den Schlüssel zu einem tatsächlichen Abschnitt ändere, funktionieren beide Methoden gut. Hier ist das ein Konfigurationsmanager mit:

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

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

Für den Datensatz funktioniert das Gleiche, wenn Sie den Kompilierungsabschnitt bekommen müssen, außer dass Sie ihn in 'CompilationSection' transformieren. –

5

Ich denke, Zugriff auf system.web ist etwas anders als den Zugriff auf AppSettings.

Versuchen Sie folgendes:

string configPath = "/MyAppRoot"; 

Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath); 

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

Sie müssen den entsprechenden Abschnitt system.web werfen Sie versuchen, auf eine bestimmte Art zuzugreifen.

+0

Prüfen Sie zunächst, ob 'system.web/identity' *** Abschnitt *** existiert? – Kiquenet

4

Das ist für mich gearbeitet:

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' liest *** machine.config *** oder *** web.config ** *? Ich möchte nur lesen *** web.config *** – Kiquenet

Verwandte Themen