7

Quartz.Netを実装しようとしています。ロギングが構成されていない限り、すべてが機能します(デバッグ出力には「構成セクションが見つかりません-ロギング出力の抑制」と表示されます)。

ロギングを有効にすると、次のエラーが発生します。構成セクション「common/logging」からのCommon.Loggingの構成の取得に失敗しました。

内部例外:common / loggingの構成セクションハンドラーの作成中にエラーが発生しました:タイプ'Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter、Common.Logging.Log4net'を作成できません

構成を変更するために、これとしていくつかのリソースを使用しましたが、私が見る限り、それは正しいはずです。

私のapp.config:

  <configSections>
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
        <arg key="configType" value="INLINE" />
      </factoryAdapter>
    </logging>
  </common>  
  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-6p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="ConsoleAppender" />
    </root>
  </log4net>
  <quartz>
    <add key="quartz.scheduler.instanceName" value="Driver.Service.Scheduler" />
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
    <add key="quartz.threadPool.threadCount" value="10" />
    <add key="quartz.threadPool.threadPriority" value="2" />
    <add key="quartz.jobStore.misfireThreshold" value="60000" />
    <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
  </quartz>

次のアセンブリを参照しました:
quartz.dll、バージョン2.01.100
common.logging.dll、バージョン2.0.0.0
common.logging.log4net.dll、バージョン2.0.0.0
log4net.dll、バージョン1.2.10.0

与えられたエラーの理由が見つかりません。すべての助けは大歓迎です、どうやら私は何かを忘れています...

4

3 に答える 3

12

新しいバージョンのCommon.Logging.Log4Netにアップグレードしたときにも同様の状況が発生し、DLL名がCommon.Logging.Log4NetからCommon.Logging.Log4Net1211に変更されました。

そこで、構成ファイルを変更してDLL名を変更しました。

<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211">

とにかく、エラーは間違いなくDLLがないことを示しています。

于 2014-08-22T18:14:52.257 に答える
5

Common.Logging.Log4net.dllがbin出力フォルダーにコピーされていることを確認できますか?

また、内部例外(またはおそらくいくつかのレベルの内部例外)に内部例外がないことを確認しますか?

于 2012-11-08T20:08:08.170 に答える
0

よくわかりませんが、common / logging configセクションで、1回はlog4netで、もう1回はlog4Net(大文字)です。

  <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
于 2012-11-07T20:45:29.263 に答える