0

使用しているファイル'loggingConfiguration'から読み取る次のコードがありますweb.configEntLib 4.0

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

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

loggingSettingsオブジェクトは実行null2nd 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 アプリケーションをセットアップしています。1 つ目はルートにあり、2 つ目は 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);

これは、IIS だけでなく開発 Web サーバーでも機能するはずです。

于 2012-05-10T13:15:20.457 に答える