2010-02-10 4 views
3

J'utilise Quartz.net dans un service Windows. Actuellement, le déclencheur ne se déclenche pas - j'aimerais utiliser la journalisation pour savoir pourquoi.Quartz.net et Common.Logging - Utilisation de Log4Net

J'ai modifié mon fichier de configuration pour le service Windows:

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 

    <sectionGroup name="common"> 
     <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> 
    </sectionGroup> 
</configSections> 

<appSettings> 
    <!--specific win service settings here--> 
</appSettings> 

<common> 
    <logging> 
     <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net"> 
      <arg key="configType" value="INLINE"/> 
      <arg key="configFile" value="c:\sched.log"/> 
      <arg key="level" value="INFO" /> 
     </factoryAdapter> 
    </logging> 
</common> 

<log4net> 
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%d [%t] %-5p %l - %m%n" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="INFO" /> 
     <appender-ref ref="EventLogAppender" /> 
    </root> 
</log4net> 

Ma structure de fichier est la suivante:

C: \ CompanyName - dir racine pour tous les projets
C: \ CompanyName \ build \ bin - Répertoire de sortie pour tous les projets/bibliothèques de classes dans ma solution
C: \ CompanyName \ lib - Où 3 binaires du parti/dll sont mis

Dans mon projet de service Windows, j'ai une référence à quartz (dans le répertoire C: \ CompanyName \ lib)

J'ai également ajouté une référence à Common.Logging .Log4net.dll

Quand je teste mon application, je reçois l'erreur suivante:

Could not load file or assembly 'Common.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)":"Common.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e

Répondre

6

Je pense que vous pourriez avoir la mauvaise version de Common.Logging. La version actuelle de Quartz.Net utilise Common.Logging version 1.2, pas 2.0. Si vous devez utiliser 2.0, essayez de recompiler quartz.net avec la version 2.0 de la journalisation commune ou essayez plutôt redirecting the assembly.

+0

Si vous redirigez la liaison, vous aurez probablement besoin de la clé publique, donc utilisez le fichier C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ x64 \> sn - T Kjellski

+1

Apparemment Quartz ver 2.1.2 fonctionne avec Commong.Logging Version 2.1.2.0 –

0

Utilisez this post pour déboguer le chargement de montage pour voir si vous pouvez déterminer la cause de la non-concordance.