我有一个Azure WebJob控制台应用程序,它不会识别我已设置的TimerTrigger
。
我有Visual Studio生成的默认Program.cs
:
class Program
{
static void Main()
{
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost();
host.RunAndBlock();
}
}
我将新功能添加到Functions.cs
:
public static void MyFunction([TimerTrigger("0 */2 * * * *",
RunOnStartup = true)]
TimerInfo timerInfo,
TextWriter log)
{
log.WriteLine("MyFunction started!");
}
(我安装了WebJobs.Extensions
NuGet包,所以我的代码编译得很好。)
我还添加了这一行:
config.UseTimers();
到this answer中提及的Main
函数,但出于某种原因,我的新函数仍未被触发。
当我启动应用程序时,我看到了这个输出:
Found the following functions:
MyNamespace.Functions.ProcessQueueMessage
Job host started
所以它没有看到我的新功能。
为什么会发生这种情况,我该如何解决?
答案 0 :(得分:10)
在将我的Program.cs
的内容与其他人在线发布的内容(包括the TimerTrigger docs)进行比较后,我发现了一个小小的差异。
在Main
函数中,我更改了:
var host = new JobHost();
为:
var host = new JobHost(config);
它有效。我确信之前我没有改变过,所以显然这是Azure WebJob模板中的一个错误。