문제

Windows 서비스 내에서 Quartz.net을 사용하고 있습니다. 현재 트리거가 발사되지 않습니다. 로깅을 사용하여 이유를 알아 내고 싶습니다.

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 : CompanyName - 모든 프로젝트에 루트를 뿌립니다
C : CompanyName build bin - 내 솔루션의 모든 프로젝트 / 클래스 라이브러리의 출력 디렉토리
C : CompanyName lib - 제 3 자 바이너리 / DLL이있는 곳

Windows Service 프로젝트에는 Quartz (C : CompanyName Lib 폴더)에 대한 참조가 있습니다.

또한 common.logging.log4net.dll에 대한 참조를 추가했습니다

앱을 테스트하면 다음 오류가 발생합니다.

파일 또는 어셈블리 'common.logging, version = 2.0.0.0, culture = neutral, publickeyToken = AF08829B84F0328E'또는 그 종속성 중 하나를로드 할 수 없습니다. 위치 어셈블리의 매니페스트 정의는 어셈블리 참조와 일치하지 않습니다. (HRESULT의 예외 : 0x80131040) ":"Common.logging, 버전 = 2.0.0.0, Culture = Neutral, PublicKeyToken = AF08829B84F0328E

도움이 되었습니까?

해결책

Common.logging의 잘못된 버전이있을 수 있다고 생각합니다. Quartz.net의 현재 버전은 2.0이 아닌 Common.logging 버전 1.2를 사용합니다. 2.0을 사용해야하는 경우 2.0 버전의 공통 로깅으로 Quartz.net을 다시 컴파일하거나 시도해보십시오. 어셈블리 리디렉션 대신에.

다른 팁

사용 이 게시물 어셈블리 로딩을 디버깅하여 불일치 원인을 정확히 찾아 낼 수 있는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top