应该很简单,但无论我尝试什么,都会返回null:
const string key = "system.web";
var sectionTry1 = WebConfigurationManager.GetSection(key);
var sectionTry2 = ConfigurationManager.GetSection(key);
我确信我之前已经这样做了。
如果这会产生影响,我正在使用MVC。
答案 0 :(得分:27)
是个白痴 - system.web不是配置部分,而是配置组。如果我将密钥更改为实际部分,则两种方法都可以正常工作。这是使用ConfigurationManager的那个:
const string outputCacheSettingsKey = "system.web/caching/outputCacheSettings";
var outputCacheSettingsSection = ConfigurationManager.GetSection(outputCacheSettingsKey) as OutputCacheSettingsSection;
答案 1 :(得分:7)
我认为访问system.web与访问appSettings略有不同。
试试这个:
string configPath = "/MyAppRoot";
Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
IdentitySection section = (IdentitySection)config.GetSection("system.web/identity");
您需要转换system.web的相关部分,并尝试访问特定类型。
答案 2 :(得分:5)
这对我有用:
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);
}