Quartz.net Job不在deploymnet模式下触发,而是在调试模式下触发

时间:2014-01-03 13:31:52

标签: asp.net iis cron quartz.net

我有一个Quartz.net工作,每5分钟发送一次电子邮件。当我在本地调试模式下运行应用程序时,它运行得非常好。但是,当部署到服务器时,作业未运行。有人会想到一个原因吗?

我们部署的站点是IIS中的ASP.NET网站。

2 个答案:

答案 0 :(得分:0)

连接这两个“内置”听众......

<add key="quartz.plugin.jobHistory.type" value="Quartz.Plugin.History.LoggingJobHistoryPlugin, Quartz" />
<add key="quartz.plugin.triggHistory.type" value="Quartz.Plugin.History.LoggingTriggerHistoryPlugin, Quartz" />

你需要连接ILog的东西。

然后你就能弄清楚发生了什么和不发生什么。

<configSections>

    <sectionGroup name="common">
        <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>

</configSections>
<common>
    <logging>
        <factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog20">
            <arg key="configType" value="FILE" />
            <arg key="configFile" value="~/NLog.config" />
        </factoryAdapter>
    </logging>
</common>

NLog.config

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" internalLogFile="Nlog.log">
    <targets>
        <target name="logfileTargetName" xsi:type="File"   layout="${longdate}|${level}|${callsite}|${logger}|${threadid}|${windows-identity:domain=false}__${message} ${exception:format=message,stacktrace:separator=*"
                fileName="MyNLogLogFile.txt" />

    </targets>
    <rules>

        <logger name="*" minlevel="Trace" writeTo="logfileTargetName"/>

    </rules>
</nlog>

答案 1 :(得分:-1)

我究竟是什么导致了这个问题。我花了很多时间在这上面但却找不到工作没有运行的原因。最后我查看了日志,发现在它之前运行的工作抛出了某种异常,所以我把我的工作从列表中的最后一个移到列表中的第一个,它开始工作正常。还有一些奇怪的事情也发生了,我并没有完全满足它是如何解决的。我想到的其他事情是

  • 我们有很多环境(dev,staging,staging),这些多种环境可能会引起某种冲突,但我认为不太可能

无论如何,在我重新安排工作后,工作开始正常运行。有趣的是,我修改了分支中的顺序,并在开发和暂存环境中修复了它。