当前位置: 首页 > 知识库问答 >
问题:

无法使用服务总线触发器运行Azure Function

洪和平
2023-03-14

我使用服务总线触发器创建了一个azure函数,当我尝试运行该函数时,我得到了这个错误:

[2021-01-07T12:32:43.565Z] A host error has occurred during startup operation '4f45a03c-9302-43c6-8c54-e6555bc0f562'.
[2021-01-07T12:32:43.566Z] System.Private.Uri: Value cannot be null. (Parameter 'uriString').

我为开发存储设置了local.settings.json文件

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet"
    }
}

我在使用AzureWebJobsStorage的函数中有连接字符串

public static class ProcessAS2ExchangeInboundExceptions
    {
        [FunctionName("ProcessAS2ExchangeInboundExceptions")]
        public static void Run(
            [ServiceBusTrigger("as2-exchange-inbound-topic", "exceptions", Connection = "AzureWebJobsStorage")] string myQueueItem,
            ILogger log)
        {
            log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");

        }

    }

我不知道是什么问题。如果有任何帮助,将不胜感激。

共有1个答案

匡祖鹤
2023-03-14

根据你的配置,AzureWebJobsStorage 表示 Azure 存储的连接字符串,而不是 Azure 服务总线。因此,要么应定义新配置以使用主题和订阅名称连接到 Azure 服务总线实例(请确保在 Azure 中旋转 Azure 服务总线实例),要么使用具有队列名称的 QueueTrigger 来使用 Azure 存储。

更新了以下代码以表示< code>QueueTrigger

public static class ProcessAS2ExchangeInboundExceptions
{
    [FunctionName("ProcessAS2ExchangeInboundExceptions")]
    public static void Run(
        [QueueTrigger("as2-exchange-inbound-queue", Connection = "AzureWebJobsStorage")] string myQueueItem,
        ILogger log)
    {
        log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");

    }

}

队列触发器-https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue-trigger?tabs=csharp

Azure服务总线触发器-https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus-trigger?tabs=csharp

 类似资料:
  • 我已经创建了一个Azure webwork,它将向服务总线队列发送强类型消息,并成功发送。 我想创建另一个webjob,只要servicebus队列中有消息,就会触发该webjob。请在下面找到我正在尝试的代码。出于某种原因,尽管servicebus队列中有消息,但当我在本地运行webjob时,webjob未被触发并出现错误。 错误: 代码: 有谁能帮我解决这个问题吗? 谢谢

  • 您好,我正试图在JBoss developer studio和Wildfly 11上构建一个简单的JaxRs web服务作为应用程序服务器,但我在尝试部署maven项目时遇到以下错误:

  • 在.NET core 2.0中使用创建时,我遇到了一个问题。 在体系结构中,当在用于创建用户的队列中创建新消息时,服务必须接收该消息并根据其中的信息在数据库中创建用户。 在Visual Studio2017中,我在下创建了一个新项目。 这种的正确实现是什么?在GitHub上有什么例子吗?提前道谢。

  • 我一直在尝试为Azure函数实现DI,其中函数由ServiceBus触发(本例中为主题/订阅): 我在以下网站上阅读了有关Azure Functions和DI的信息: https://mcguirev10.com/2018/04/03/service-locator-azure-functions-v2.html https://blog.wille-zone.de/post/azure-func

  • 我目前正在评估使用一个服务总线和azure函数来触发一些需要通过下游api调用来完成的工作。这都是相当标准的,只是我没有很好地处理当下游系统过载和/或返回header到trottle时会发生什么(即每分钟最大调用数/等)。对于队列触发器的强制节流,我们似乎没有任何动态控制。 我知道我们可以手动设置最大并发,但这并不一定解决问题,因为我们无法控制下游系统,需要考虑它随时可能脱机或变慢。 假设消费计划

  • 我试图从使用逻辑应用程序的服务总线队列读取消息。我没有找到任何关于逻辑应用程序如何根据队列中的消息数量进行缩放的留档。任何帮助或指针非常感谢。