为什么在队列中添加队列消息时,Azure webjob 无法执行 ProcessQueueMessage?

Why Azure webjob unable to execute ProcessQueueMessage when queue message is added in queue?

我想知道为什么我的 webjob 在队列中找到消息后无法在 Functions.cs 中执行方法 ProcessQueueMessage

Functions.cs

 public class Functions
    {
        public static void ProcessQueueMessage([QueueTrigger("testqueue")] string logMessage, TextWriter logger)
        {
            logger.WriteLine(logMessage);
        }

我 运行 这个 webjob 在控制台中显示如下。

Found the following functions:
ProcessQueueMessage
Job host started

问题是当有任何消息添加到 testqueue 时,调试器没有命中。

我上次已经这样做了,而且成功了。我错过了什么?我没有在 Azure 上托管我的网络作业。

我刚刚尝试了 运行ning 与您类似的代码,并且运行良好。我 运行 的代码是 Visual Studio 2015 年使用 Azure SDK 2.7.1 新创建的 "Azure WebJob" 项目。

但是,我在尝试时做了一些观察。

  1. 它不会运行 使用模拟的开发人员 Azure 存储帐户。只有 Azure 中托管的存储帐户有效。
  2. 如果队列不存在或拼写错误,它不会给出任何错误消息。无论队列是否存在,输出都是一样的。

因此,请验证您正在使用的队列 ("testqueue") 确实存在并且没有拼写错误。如果不存在,请重新启动应用程序。

在我的测试中,在我创建队列后重新启动应用程序之前,它没有接收到新的队列消息。

作为参考,您可以在此处找到我的代码 https://github.com/kimpihlstrom/azure/tree/master/Azure.Webjob.SDK.MessageProcessor。刚刚用一些实际值更新了 AzureWebJobsDashboardAzureWebJobsStorage

可以从 Azure 管理门户中找到存储帐户名称和密钥。导航到存储帐户并按屏幕底部的 "Manage Access Keys" 按钮。