How to read system.web section from web.config

后端 未结 3 2081
轻奢々
轻奢々 2021-02-13 09:37

Should be simple, but whatever I try returns null:

const string key = \"system.web\";

var sectionTry1 = WebConfigurationManager.GetSection(key);

var sectionTry         


        
相关标签:
3条回答
  • 2021-02-13 09:38

    Was being an idiot - system.web is not a config section but a config group. If I change the key to an actual section, then both methods work fine. Here's the one using ConfigurationManager:

    const string outputCacheSettingsKey = "system.web/caching/outputCacheSettings";           
    
    var outputCacheSettingsSection = ConfigurationManager.GetSection(outputCacheSettingsKey) as OutputCacheSettingsSection;
    
    0 讨论(0)
  • 2021-02-13 09:45

    I think accessing system.web is slightly different to accessing appSettings.

    Try this:

    string configPath = "/MyAppRoot";
    
    Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
    
    IdentitySection section = (IdentitySection)config.GetSection("system.web/identity");
    

    You need to cast the relevant section of system.web you're trying to access to a particular type.

    0 讨论(0)
  • 2021-02-13 09:52

    This worked for 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 讨论(0)
提交回复
热议问题