如何在本地调试azure功能

时间:2018-03-12 22:57:30

标签: c# azure azure-functions azure-storage-queues

您好我在Azure门户中创建了一个函数,并看到队列数据已经出列。

我在我的计算机上安装了一个CLI,当我运行该项目时,它将显示一个func.exe命令提示符。我在local.settings.json中添加了这样的连接字符串:

>  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=...",
    "AzureWebJobsDashboard": "DefaultEndpointsProtocol=https;AccountName=...",
    "tuxdev_STORAGE": "DefaultEndpointsProtocol=https;AccountName=..."
  } 

当我在门户中向队列添加消息时,应用程序没有收到消息。我还需要更新哪些其他设置。

enter image description here

1 个答案:

答案 0 :(得分:2)

根据您的错误消息,问题似乎是您的班级或方法不公开。如果我将我的方法设置为私有,我也会得到与你相同的错误。

enter image description here

如果我将函数方法设置为 public ,一切正常。该函数将显示我在门户网站中添加的队列。

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;

 public static class Function1
{
    [FunctionName("Function1")]
    public static void Run([QueueTrigger("myqueue", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
    {

        log.Info($"C# Queue trigger function processed: {myQueueItem}");
    }
}

enter image description here

或者问题可能与您的nuget包版本有关。您可以升级到最新的Microsoft.NET.Sdk.Functions(截至今天为1.0.6)和Microsoft.Azure.WebJobs.Service.Bus(如果在完整框架上运行,则为2.1.0-beta4)。请参阅此article

  

您应该升级到最新的Microsoft.NET.Sdk.Functions(截至今天为1.0.6)和Microsoft.Azure.WebJobs.Service.Bus(如果在完整框架上运行,则为2.1.0-beta4)。您可能需要先删除ServiceBus引用才能升级SDK。

     

还需要删除Microsoft.Azure.Eventhubs包。所有相关类型等都在Microsoft.Azure.WebJobs.Service.Bus

中      

还要记得检查"包括预发布"在包管理器中找到2.1.0-beta4