如何使用LoggingSettings从Web.Config中读取“loggingConfiguration”

时间:2012-05-08 06:41:38

标签: asp.net

我有以下代码来阅读使用'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

关于这里出了什么问题的任何建议?

2 个答案:

答案 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。