【问题标题】:How do I debug azure function locally如何在本地调试 azure 函数
【发布时间】:2018-08-21 02:09:51
【问题描述】:

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

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

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

当我将消息添加到门户中的队列时,应用程序没有收到消息。我还需要更新什么其他设置。

【问题讨论】:

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


    【解决方案1】:

    根据您的错误消息,问题似乎是您的类或方法未公开。如果我将我的方法设置为私有,我也会得到和你一样的错误。

    如果我将函数方法设置为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}");
        }
    }
    

    或者问题可能与您的 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

    【讨论】:

    • 我想可能是因为我需要重新更新visual studio。
    • 我尝试在同事的计算机上使用相同的代码,但它可以在他们的计算机上运行。只是环境不同。必须先尝试一下。
    • 这是我的 nuget 包(image.ibb.co/fBmLq7/nugetpackage.png)。如果它不起作用,您可以尝试更新您的 vs.
    • @LittleFunny 如果您更改了 Azure 函数中的代码,请确保您已重建项目。有时,如果您没有重建项目,新的更改将不起作用。右键单击项目>单击重建按钮进行重建。
    • 我去看看。我非常感谢您的帮助。谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 2020-03-07
    • 2018-02-06
    • 1970-01-01
    • 2021-06-21
    相关资源
    最近更新 更多