我有以下代码来阅读使用'loggingConfiguration'
的{{1}}文件中的web.config
EntLib 4.0
在Configuration entLibConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration
(@"/Web.config");
LoggingSettings loggingSettings =
(LoggingSettings)entLibConfig.GetSection(LoggingSettings.SectionName);
执行后,loggingSettings
对象为null
。
关于这里出了什么问题的任何建议?
答案 0 :(得分:1)
ExeConfigurationFileMap exc = new ExeConfigurationFileMap();
exc.ExeConfigFilename = @"Web.exe.config";
Configuration _config = ConfigurationManager.OpenMappedExeConfiguration(exc,ConfigurationUserLevel.None);
LoggingSettings log = _config.GetSection("loggingConfiguration") as LoggingSettings;
试试这个,它对我有用。
答案 1 :(得分:0)
为LoggingSettings
返回null的原因是您正在打开的web.config中没有配置LoggingSettings。这可能是因为指定的路径不正确。
我设置了一个带有2个web.configs的Web应用程序:第一个位于根目录中,第二个位于Config文件夹中。
/Root
web.config
/Root/Config
web.config
Config文件夹中的web.config包含LoggingSettings。从不在Config文件夹中的页面读取LoggingSettings的代码是:
Configuration entLibConfig =
WebConfigurationManager.OpenWebConfiguration(@"~/Config");
LoggingSettings loggingSettings =
(LoggingSettings)entLibConfig.GetSection(LoggingSettings.SectionName);
这应该适用于开发Web服务器以及IIS。