2010-02-10 1 views
3

Windows 서비스 내에서 Quartz.net을 사용하고 있습니다. 현재 트리거가 실행되고 있지 않습니다. 이유를 알아 내기 위해 로깅을 사용하고 싶습니다.Quartz.net 및 Common.Logging - Log4Net 사용

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

내 파일 구조는 다음과 같다 :

C : \ 회사 명 - 모든 프로젝트 루트 디렉토리
C : \ CompanyName \ build \ bin - 내 솔루션의 모든 프로젝트/클래스 라이브러리에 대한 출력 디렉터리
C : \ CompanyName \ lib - 어디 제 3 자 바이너리가/DLL을 내 Windows 서비스 프로젝트에서

을 넣어, 나는 (의 C : \ 회사 이름 \ lib 폴더) 석영에 대한 참조가

나는 또한 Common.Logging에 대한 참조를 추가 한

내 응용 프로그램을 테스트 .Log4net.dll

, 나는 다음과 같은 오류가 발생합니다 :

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

답변

6

내가 Common.Logging의 버전이 잘못되었을 수 있습니다. 현재 버전의 Quartz.Net은 2.0이 아닌 Common.Logging 버전 1.2를 사용합니다. 2.0을 사용해야하는 경우 2.0 버전의 공용 로깅을 사용하여 quartz.net을 다시 컴파일하거나 redirecting the assembly을 시도하십시오.

+0

바인딩을 리디렉션하면 publickeytoken이 필요하므로 해당 C : \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ x64 \> sn - T Kjellski

+1

Quartz ver 2.1.2가 Commong.Logging 버전 2.1.2.0과 함께 작동하는 것 같습니다. –

0

사용 this post 당신이 불일치의 원인을 찾아 낼 수 있는지 확인하기 위해 어셈블리 로딩을 디버깅 할 수 있습니다.