Quartz.net et Common.Logging - L'utilisation Log4Net
-
19-09-2019 - |
Question
J'utilise Quartz.net dans un service Windows. À l'heure actuelle, le déclencheur ne se déclenche pas. - Je voudrais utiliser l'enregistrement pour savoir pourquoi
Je l'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 le suivant:
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 - Si les binaires 3ème partie / dll sont mis
Dans mon projet de service Windows, j'ai une référence à quartz (dans le dossier 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:
Impossible de charger le fichier ou l'assemblage « Common.Logging, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = af08829b84f0328e » ou une de ses dépendances. le situé définition manifeste de l'assemblée ne ne pas correspondre à la référence d'assemblage. (Exception de HRESULT: 0x80131040) ":" Common.Logging, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = af08829b84f0328e
La solution
Je pense que vous pourriez avoir la mauvaise version de Common.Logging. La version actuelle de Quartz.Net utilise la version 1.2 Common.Logging, pas 2.0. Si vous avez besoin d'utiliser 2.0, essayez l'recompiler quartz.net avec la version 2.0 de l'exploitation forestière commune ou d'essayer rediriger l'ensemble à la place.
Autres conseils
Utilisez ce poste pour déboguer l'assemblage chargement pour voir si vous pouvez déterminer la cause de la non-concordance.