Quartz.NET не запускается, когда в методе присутствует определенный код - PullRequest
1 голос
/ 15 января 2012

Я пытаюсь настроить Quartz.NET в рабочей роли Azure для планирования ежедневных событий.После долгих проб и ошибок я обнаружил, что включение одной строки кода в целевой метод приводит к тому, что событие вообще не вызывается

Построение из Пример Quartz.NET , у меня есть класс IJob для переопределенного метода Execute (зарегистрированного с помощью планировщика и триггера).

Когда удаленная строка (закомментированная) удалена, я могу попасть в точку остановаОператор Trace.WriteLine.Если он присутствует, точка останова никогда не будет достигнута, и выход не будет отображаться где-либо еще.

Код:

public class MyUpdaterJob : IJob
{
    public MyUpdaterJob()
    {
    }

    public void Execute(JobExecutionContext context)
    {
        Trace.WriteLine("-- Yay - Job called");

        // Removing this line will result in the breakpoint above being able to be hit
        MyUpdateWorker updateWorker = new MyUpdateWorker();

        var logDate = context.FireTimeUtc.Value.AddHours(-1);

        // [...]
    }
}

Я в растерянности относительно того, что можетоценивать, что бы не вызвать это событие.Есть какие-нибудь предложения?

  • MyUpdateWorker находится в другой библиотеке
  • В настоящее время он работает как рабочая роль Azure

Ответы [ 2 ]

1 голос
/ 16 января 2012

Я думаю, я бы проверил конструктор для вашего класса MyUpdateWorker (), чтобы увидеть, все ли работает нормально, возможно, есть журнал в журналах диагностики, чтобы увидеть, есть ли там что-нибудь, что указало бы причину.Обычно я вижу проблемы с отсутствующими библиотеками в Azure, поэтому, возможно, существует отсутствующая зависимость.

Просто несколько вещей для проверки (сегодня утром было только два кофе, поэтому я все еще разогреваюсь)

0 голосов
/ 18 февраля 2012

Ух ты - это было странно.

В результате «органического» роста этого проекта библиотека, содержащая реализацию IJob, ранее была консольным приложением, которое я переключил на вывод «библиотека классов» за несколько недель до этого.

Цель платформы была установлена ​​(любая была доступна только) x86. Все остальное компилировалось как «Любой процессор», и, вероятно, 64-битный.

Я помню, что мне пришлось вручную редактировать файл .csproj, чтобы обновить его, но как только для прежней console-project-now-library было установлено значение Any CPU, теперь оно срабатывает правильно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...