Azure WebJob不会触发队列

时间:2015-08-01 18:02:46

标签: c# azure azure-sql-database azure-web-sites azure-webjobs

我创建了Azure WebJob。把它发布为持续的工作。

这是主要功能:

static void Main()
    {

        var config = new JobHostConfiguration();
        config.Queues.MaxPollingInterval = TimeSpan.FromSeconds(2);
        config.Queues.MaxDequeueCount = 3;
        var host = new JobHost(config);
        host.RunAndBlock();
    }

这是触发队列的函数:

   public static class Functions{
   public static void    ProcessQueueMessage([QueueTrigger("queue")]QueueMessage queueMessage, TextWriter log)
    {
        //du staff
    }
  }

比我发送消息到名为" queue"的队列,但是没有触发作业。 同样在仪表板中我可以看到,该作业已经开始并执行。

还有一刻:当我在本地机器上调试时,所有这些都很好:当消息出现在队列中时调用的函数。

为什么它不是由Azure上的队列中的消息触发的?

2 个答案:

答案 0 :(得分:2)

随后@Sandesh,我建议任何人首先检查应用程序设置。

AzureWebJobsDashboardAzureWebJobsStorage都应放置在Azure网站配置标签内的应用设置字段中,如下图所示。这两个键(AzureWebJobsStorageAzureWebJobsDashboard)是硬编码的,因此 NOT 更改键名。

此外,放入App.config文件不够。请检查值是否相应地放置在Azure配置选项卡的应用程序设置中。

enter image description here

答案 1 :(得分:0)

我怀疑Web作业的存储配置可能没有指向正确的存储帐户。请检查您是否正在写入使用Web作业配置的存储帐户的队列。

还要记住的另一点是,如果Web作业托管在免费计划中,则可能是Web作业未运行。

Azure Documentation

中的一些要点
  

备注

     
      
  1. 如果没有向scm(部署)站点发出请求且Web应用程序门户未在Azure中打开,则免费模式下的Web应用程序可能会在20分钟后超时。对实际站点的请求不会重置此项。
  2.   
  3. 需要编写连续作业的代码以无限循环运行。只有在Web应用程序启动时,连续作业才会连续运行。
  4.   
  5. 基本和标准模式提供Always On功能,启用该功能可防止Web应用程序闲置。
  6.   
相关问题