C# Azure WebJob不触发队列

C# Azure WebJob不触发队列,c#,azure,azure-sql-database,azure-web-app-service,azure-webjobs,C#,Azure,Azure Sql Database,Azure Web App Service,Azure Webjobs,我创建了Azure WebJob。将其作为连续作业发布 主要功能如下: static void Main() { var config = new JobHostConfiguration(); config.Queues.MaxPollingInterval = TimeSpan.FromSeconds(2); config.Queues.MaxDequeueCount = 3; var host = new JobHo

我创建了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上队列中的消息触发的?

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

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

来自中国的一些重要观点

注释

  • 如果没有对scm(部署)站点的请求,并且Web应用的门户未在Azure中打开,则处于免费模式的Web应用可能在20分钟后超时。对实际站点的请求不会重置此设置
  • 需要编写连续作业的代码,使其在无休止的循环中运行。连续作业仅在web应用启动时持续运行
  • 基本模式和标准模式提供了常开功能,启用该功能后,可防止web应用程序闲置

  • 接下来是@Sandesh,我建议任何人首先检查应用程序设置

    AzureWebJobsDashboard
    azurewebjobstorage
    都应该放在Azure网站配置选项卡内的app settings字段中,如下图所示。这两个键(
    azurewebjobstorage
    AzureWebJobsDashboard
    )是硬编码的,因此不更改键名

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


    您在webjob日志中看到任何错误吗?如果未设置AzureWebJobsDashboard,则webjob将不会运行,因此不会出现此问题。。。