Azure Web作业未触发并始终提供"未找到作业功能"

时间:2018-05-01 20:01:31

标签: azure-webjobs azure-webjobssdk

我正在尝试使用触发器运行Azure webjob,但我的timerjob方法没有触发。我收到了消息。

找不到工作职能。尝试公开您的工作类和方法。如果您正在使用绑定扩展(例如ServiceBus,Timers等),请确保您已在启动代码中调用扩展的注册方法(例如config.UseServiceBus(),config.UseTimers ()等。)。

我正在使用config.UseTimers()但仍显示该消息。不确定以下代码有什么问题

    static void Main()
    {
        JobHostConfiguration config = new JobHostConfiguration();
        config.UseTimers();

        var host = new JobHost(config);
        host.RunAndBlock();
    }


    public static void TimerTrig([TimerTrigger("0 */1 * * * *", RunOnStartup = true)] TimerInfo timer)
    {
        Console.WriteLine("Triggered");
    }

我正在使用Microsoft.Azure.WebJobs和Microsoft.Azure.WebJobs.Host v2.2.0;

1 个答案:

答案 0 :(得分:1)

根据您的描述,您的项目中似乎没有Function.cs文件。您可以在项目中添加 Functions.cs 文件,并在其中添加TimeTrig函数。

我们也可以用VS创建带Webjob模板的WebJob。您可以参考以下详细步骤。

1.使用webjob模板创建Webjob。

enter image description here

2.安装Microsoft.Azure.WebJobs.Extensions

enter image description here

3.在programm.cs

中添加以下代码
 var config = new JobHostConfiguration();
 config.UseTimers(); //add this code.
 if (config.IsDevelopment)
 {
     config.UseDevelopmentSettings();
 }

  var host = new JobHost(config);
  // The following code ensures that the WebJob will be running continuously
  host.RunAndBlock();

4.在Functions.cs文件中添加时间triger代码。

public static void TimerTrig([TimerTrigger("0 */1 * * * *", RunOnStartup = true)] TimerInfo timer)
    {
        Console.WriteLine("Triggered");
    }

enter image description here

注意:请在app.config中设置 AzureWebJobsDashboard AzureWebJobsStorage 连接字符串,以便运行此WebJob:

enter image description here