【问题标题】:Quartz.net and Common.Logging - Using Log4NetQuartz.net 和 Common.Logging - 使用 Log4Net
【发布时间】:2011-01-15 06:12:25
【问题描述】:

我在 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 服务项目中,我引用了 Quartz(在 C:\CompanyName\lib 文件夹中)

我还添加了对 Common.Logging.Log4net.dll 的引用

当我测试我的应用时,我收到以下错误:

无法加载文件或程序集 'Common.Logging,版本=2.0.0.0, 文化=中性, PublicKeyToken=af08829b84f0328e' 或 它的依赖项之一。位于 程序集的清单定义确实 与程序集引用不匹配。 (HRESULT 的例外情况: 0x80131040)":"Common.Logging, 版本=2.0.0.0,文化=中性, PublicKeyToken=af08829b84f0328e

【问题讨论】:

    标签: c# logging log4net quartz.net common.logging


    【解决方案1】:

    使用this post 调试程序集加载,看看是否可以查明不匹配的原因。

    【讨论】:

      【解决方案2】:

      我认为您的 Common.Logging 版本可能有误。 Quartz.Net 的当前版本使用 Common.Logging 版本 1.2,而不是 2.0。如果您需要使用 2.0,请尝试使用 2.0 版本的 common logging 重新编译quartz.net,或者尝试使用redirecting the assembly

      【讨论】:

      • 如果你重定向绑定,你可能需要 publickeytoken,因此,使用 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ x64\>sn -T
      • 显然 Quartz 版本 2.1.2 与 Commong.Logging 版本 2.1.2.0 一起使用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多