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

时间:2015-10-08 07:20:26

标签: c# azure azure-webjobs azure-webjobssdk

  

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

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中添加了任何消息时,调试器未被命中。

  

我想知道我错过了什么,我最后一次做了这件事:(可以   有谁帮我知道我错过了什么?我没有托管我的webjob   天青。

1 个答案:

答案 0 :(得分:1)

我刚尝试为你的代码运行类似的代码并且运行正常。我运行的代码是使用Azure SDK 2.7.1在Visual Studio 2015中新创建的“Azure WebJob”项目。

然而,在尝试时我做了一些观察。

  1. 它不使用模拟的开发人员Azure存储帐户运行。只有Azure中托管的存储帐户才有效。
  2. 如果队列不存在或拼写错误,它不会给出任何错误消息。无论队列是否存在,输出都是相同的。
  3. 因此,验证您正在使用的队列(“testqueue”)是否确实存在并且没有拼写错误。如果它不存在,请重新启动应用程序。

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

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

    可以从Azure管理门户中找到存储帐户名称和密钥。导航到存储帐户,然后按屏幕底部的“管理访问密钥”按钮。