6

Próbuję wdrożyć Quartz.Net. Dopóki nie ma skonfigurowanego rejestrowania, wszystko działa (dane wyjściowe debugowania pokazują "nie znaleziono sekcji konfiguracji - tłumienie wyjścia rejestru").Quartz.Net - Common Logging with log4net

Gdy logowanie jest włączone, otrzymam następujący błąd: Nie można uzyskać konfiguracji dla Common.Logging z sekcji konfiguracji "wspólne/logowanie".

exeption Wewnętrzna: Wystąpił błąd podczas tworzenia programu obsługi sekcji konfiguracji dla wspólnych/logowania: Nie można utworzyć typ „Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net”

użyłem kilku zasobów jako this one, aby zmienić moją konfigurację, ale z tego co widzę, powinna być prawidłowa.

Moje app.config:

<configSections> 
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <sectionGroup name="common"> 
     <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> 
    </sectionGroup> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 
    <common> 
    <logging> 
     <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net"> 
     <arg key="configType" value="INLINE" /> 
     </factoryAdapter> 
    </logging> 
    </common> 
    <log4net> 
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
     <param name="ConversionPattern" value="%-6p%d{yyyy-MM-dd hh:mm:ss} – %m%n" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="ConsoleAppender" /> 
    </root> 
    </log4net> 
    <quartz> 
    <add key="quartz.scheduler.instanceName" value="Driver.Service.Scheduler" /> 
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" /> 
    <add key="quartz.threadPool.threadCount" value="10" /> 
    <add key="quartz.threadPool.threadPriority" value="2" /> 
    <add key="quartz.jobStore.misfireThreshold" value="60000" /> 
    <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" /> 
    </quartz> 

I odwołuje następujące zespoły:
Quartz.dll, wersja 2.01.100
common.logging.dll, wersja 2.0.0.0
common.logging. log4net.dll, wersja 2.0.0.0
log4net.dll, wersja 1.2.10.0

Nie mogę znaleźć powodu dla podanego błędu. Każda pomoc jest mile widziana, najwyraźniej czegoś zapomnę ...

Odpowiedz

5

Czy można sprawdzić, czy plik Common.Logging.Log4net.dll jest kopiowany do folderu wyjściowego bin.

Czy na pewno nie masz wewnętrznego wyjątku dotyczącego wewnętrznego wyjątku (lub może kilku poziomów wewnętrznych wyjątków)?

+0

Już sprawdziłem, czy wymagane dll zostały skopiowane do folderu bin biblioteki, którą buduję. To, czego nie sprawdziłem, to folder bin aplikacji konsoli testowej i tam ich nie było. Dzięki! – DirkV

0

Nie jestem pewien, ale w swoim wspólnym/rejestrowania sekcji config, raz jej napisany log4net i raz jej log4net (duża litera):

<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net"> 
+0

Dzięki za wskazanie. Porównałem go z działającym przykładem Quartz, który pobrałem i zmodyfikowałem. Jednak bez rezultatu. – DirkV

11

Mieliśmy podobną sytuację, kiedy zaktualizowany do nowej wersji Common.Logging.Log4Net gdzie nazwa DLL zmieniono na Common.Logging.Log4Net1211 z Common.Logging.Log4Net.

Więc zmodyfikowany plik konfiguracyjny, aby zmienić nazwę DLL:

<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211"> 

W każdym razie, na pewno wskazuje brakuje błąd DLL.

+0

Więcej informacji na ten temat można znaleźć na stronie: https://github.com/net-commons/common-logging/wiki/Common.Logging-Packaging-and-Versions – Jahmic