Исключение триггера Timmer веб-задания Azure

Я пытаюсь запустить запускаемое веб-задание Azure с помощью azure-webjobs-sdk-extensions (https://github.com/Azure/azure-webjobs-sdk-extensions)

JobHostConfiguration config = new JobHostConfiguration();
config.UseTimers();

JobHost host = new JobHost(config);
host.Call(typeof(Functions).GetMethod("CronJob"));
host.RunAndBlock();

public static void CronJob([TimerTrigger("0 */5 * * * *")] TimerInfo timer)
{
    Console.WriteLine("Cron job fired!");
}

Но я получаю это исключение.

Microsoft.Azure.WebJobs.Host System.ObjectDisposedException

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

Любые идеи? Спасибо


person Mihai    schedule 05.09.2016    source источник
comment
Какую версию SDK вы используете?   -  person Thomas    schedule 06.09.2016
comment
Последняя версия. 1.0.1 Я установил его через nuget, не указав версию, поэтому я предполагаю, что он взял последнюю стабильную версию (я вернул код, поэтому я не уверен на 100%)   -  person Mihai    schedule 06.09.2016
comment
Вы можете прокомментировать эту строку host.Call(typeof(Functions).GetMethod("CronJob"));? Тебе это не нужно. Можете ли вы взглянуть на этот ответ и сказать, работает ли он stackoverflow.com/a/34235136/4167200?   -  person Thomas    schedule 06.09.2016
comment
Ага. Похоже, что это было частью проблемы, хотя я помню, как пытался. Изменены некоторые версии nugets и теперь он работает   -  person Mihai    schedule 06.09.2016


Ответы (1)


host.Call (typeof (Функции) .GetMethod ("CronJob"));

Обратите внимание, что вы должны предоставить функции CronJob параметр TimerInfo. Функция CronJob вызывается автоматически заданным вами TimeTrigger. Если вы хотите вызвать функцию CronJob перед вызовом host.RunAndBlock(), вы можете обратиться к следующему коду:

host.Call(typeof(Functions).GetMethod("CronJob"),new { timerInfo = new TimerInfo(null, null) });

Но я получаю это исключение. Microsoft.Azure.WebJobs.Host System.ObjectDisposedException

Согласно вашему описанию, я загрузил примеры проектов с упомянутого вами GitHub и обнаружил, что версии связанного пакета старые. Следуйте этой руководство по созданию проекта веб-задания Azure и установке пакетов последней версии Microsoft.Azure.WebJobs и Microsoft.Azure.WebJobs.Extensions, затем проверьте свою TimeTrigger функцию.

person Bruce Chen    schedule 06.09.2016
comment
Спасибо. Я попробую сейчас. Я дам вам знать, работает это или нет :) - person Mihai; 06.09.2016
comment
Хм .. это сработало. Я использовал Microsoft.Azure.WebJobs версии 1.1.0 и Extensions 1.0.1.0 и не вызывал метод явно. Может, вчера я что-то пропустил, кто знает. Спасибо :) - person Mihai; 06.09.2016