0

我有以下代码来读取正在使用'loggingConfiguration'的文件web.configEntLib 4.0

Configuration  entLibConfig = 
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration
(@"/Web.config");

LoggingSettings loggingSettings = 
(LoggingSettings)entLibConfig.GetSection(LoggingSettings.SectionName);

loggingSettings对象在执行null之后2nd line

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

4

2 回答 2

1
ExeConfigurationFileMap exc = new ExeConfigurationFileMap();
exc.ExeConfigFilename = @"Web.exe.config";
Configuration _config = ConfigurationManager.OpenMappedExeConfiguration(exc,ConfigurationUserLevel.None);
LoggingSettings log = _config.GetSection("loggingConfiguration") as LoggingSettings;

试试这个,它对我有用。

于 2012-06-06T13:49:25.383 回答
0

返回 null 的原因是LoggingSettings您打开的 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 中工作。

于 2012-05-10T13:15:20.457 回答