2

Quartz.Netの最新バージョンをダウンロードし、以下の構成を使用してcommon.loggingおよびlog4net dllで構成しようとしました(この例に基づく)

<configSections>
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=2.1.2.400,Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4" />
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging, Version=2.1.2.0, Culture=neutral, PublicKeyToken=af08829b84f0328e" />
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>

<logging>
    <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
        <arg key="configType" value="INLINE" />
    </factoryAdapter>
</logging>
<log4net>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
        <param name="File" value="MyQuartzLog.txt" />
        <param name="AppendToFile" value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="10MB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
        </layout>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="LogFileAppender" />
    </root>
</log4net>
<quartz>
    <add key="quartz.scheduler.instanceName" value="QuartzTestLog4Net" />

    <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>

それは動作しません。

<section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=2.1.2.400,Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4" />

コンポーネントのロードエラーが発生します。sn.exeを使用してpublickeytokenを確認しました。キートークンは正しいです。

クォーツ機能を削除すると、アプリケーションが実行される可能性があります。ただし、ログオブジェクトにはNoOpLogger情報({Common.Logging.Simple.NoOpLogger})があります。

私のプロジェクトはCommon.Loggingバージョン2.1.2.0を参照しています。Common.Logging.Log4Netバージョン2.0.0.0; およびlog4netバージョン1.2.10.0。それらは正しいバージョンですか?そうでない場合、正しいものは何ですか。

ありがとう、

4

1 に答える 1

4

Quartz.NETディストリビューションに付属しているサンプルサーバーを確認する必要があります。

https://github.com/quartznet/quartznet/tree/master/server/Quartz.Server

App.config:

type = "System.Configuration.NameValueSectionHandler、System、Version = 1.0.5000.0、Culture = neutral、PublicKeyToken=b77a5c561934e089"です。

  • NameValueSectionHandlerはBCLタイプであり、Quartz.NETのものではありません
  • おそらくバージョンと公開鍵を省略できます

Package.config

パッケージが間違っている可能性があります。サンプルのpackages.configには、Log4Net1.2.11を使用する場合の有効な組み合わせが含まれています

于 2013-03-11T13:07:13.710 に答える