Azure Web作业计时器触发器未触发

时间:2017-05-14 13:58:53

标签: c# azure-webjobs

我是azure web jobs的新手。我正在使用azure扩展和核心版本2.0.0。我正在使用this git repo,我理解使用的是nigets的beta版本。目前我在本地机器上以调试模式运行应用程序。我创建了一个使用TimerTrigger每分钟运行的函数。代码如下,

static void Main()
    {
        var config = new JobHostConfiguration();
        config.UseTimers();
        config.Tracing.ConsoleLevel = System.Diagnostics.TraceLevel.Verbose;

        if (config.IsDevelopment)
        {
            config.UseDevelopmentSettings();
        }

        var host = new JobHost();
        // The following code ensures that the WebJob will be running continuously
        host.RunAndBlock();
    }
   [NoAutomaticTrigger]
   public static void TimerTrig([TimerTrigger("0 * * * * *", RunOnStartup = true)] TimerInfo timer)
        {
            Console.WriteLine("Triggered");
        }

我的问题是,   - 我在网上看到的示例都没有使用[NoAutomaticTrigger]属性。但如果我不使用它,作业主机就无法找到该功能本身。   - 该功能未触发。我已经在cron表示法中使用了设置时间,运行start up = true,使跟踪控制台级别变为详细。

我错过了什么?

2 个答案:

答案 0 :(得分:3)

尝试将配置作为参数传递给作业主机构造函数。

var host = new JobHost(config);

答案 1 :(得分:0)

因为谷歌将此作为对计时器不触发原因的第一反应......

如果您已将项目创建为 Azure Web 作业类型,Visual Studio 会生成一个 Functions 类。如果该类存在,则 Azure 将仅从该类加载 TimerTrigger 和服务总线函数。

没有它,Azure 将识别来自其​​他位置的功能。