Quartz.net y Common.Logging - Uso Log4net
-
19-09-2019 - |
Pregunta
Estoy usando Quartz.net dentro de un servicio de Windows. Actualmente, el gatillo no está disparando -. Me gustaría utilizar el registro para averiguar por qué
He editado mi fichero de configuración para el servicio de 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>
Mi estructura de archivos es la siguiente:
C: \ NombreCompañía - directorio raíz para todos los proyectos
C: \ NombreCompañía \ build \ bin - Directorio de salida para todos los proyectos / librerías de clases en mi solución
C: \ NombreCompañía \ lib - ¿Dónde binarios de 3 ª parte / dlls se ponen
En mi proyecto de servicio de Windows, tengo una referencia al cuarzo (en el directorio C: \ NombreCompañía \ lib)
También he añadido una referencia a Common.Logging.Log4net.dll
Cuando pruebo mi aplicación, me sale el siguiente error:
No se pudo cargar el archivo o ensamblado 'Common.Logging, versión = 2.0.0.0, Culture = neutral, PublicKeyToken = af08829b84f0328e' o una de sus dependencias. el situado Definición de manifiesto el montaje hace no coincide con la referencia de ensamblado. (Excepción de HRESULT: 0x80131040) ":" Common.Logging, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = af08829b84f0328e
Solución
Creo que es posible que tenga la versión incorrecta de Common.Logging. La versión actual de Quartz.Net usa la versión Common.Logging 1.2, no 2.0. Si es necesario utilizar 2,0, o bien tratar de volver a compilar quartz.net con la versión 2.0 de la tala común o tratar redirigir el conjunto su lugar.
Otros consejos
El uso este post para depurar el conjunto de carga para ver si se puede determinar la causa de la falta de correspondencia.