Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C服务总线队列触发器从未被触发_C#_Azure_Azure Functions_Azureservicebus_Azure Servicebus Queues - Fatal编程技术网

C# C服务总线队列触发器从未被触发

C# C服务总线队列触发器从未被触发,c#,azure,azure-functions,azureservicebus,azure-servicebus-queues,C#,Azure,Azure Functions,Azureservicebus,Azure Servicebus Queues,我创建了一个非常简单的.net core 3.1 functions项目,其中包含一个应该基于服务总线队列触发的函数 代码如下所示: [FunctionName("PublishImage")] public static async Task Run( [QueueTrigger("publishimage")]string message, ILogger log) { log.LogInformation($"Started to publish image: {m

我创建了一个非常简单的.net core 3.1 functions项目,其中包含一个应该基于服务总线队列触发的函数

代码如下所示:

[FunctionName("PublishImage")]
public static async Task Run(
    [QueueTrigger("publishimage")]string message,
    ILogger log)
{
    log.LogInformation($"Started to publish image: {message}");
}
{
    "version": "2.0",
    "functionTimeout": "04:00:00",
    "extensions": {
        "queues": {
            "maxPollingInterval": "00:00:02",
            "visibilityTimeout": "00:00:30",
            "batchSize": 16,
            "maxDequeueCount": 5,
            "newBatchThreshold": 8
        }
    }
}
当我在本地启动函数时,我看到他找到了函数,我没有得到任何异常

然后当我向队列发送消息时。它不会被触发。在Azure中,我看到队列中现在有4条消息,我所做的任何事情都不会触发,在本地看不到异常,如果我尝试在Azure中运行它并启用application Insights,我看不到任何异常或任何信息。此外,打开日志也不会提供任何信息

My host.json现在看起来像这样:

[FunctionName("PublishImage")]
public static async Task Run(
    [QueueTrigger("publishimage")]string message,
    ILogger log)
{
    log.LogInformation($"Started to publish image: {message}");
}
{
    "version": "2.0",
    "functionTimeout": "04:00:00",
    "extensions": {
        "queues": {
            "maxPollingInterval": "00:00:02",
            "visibilityTimeout": "00:00:30",
            "batchSize": 16,
            "maxDequeueCount": 5,
            "newBatchThreshold": 8
        }
    }
}
已安装Microsoft.NET.Sdk.Functions 3.0.7。 azure中的运行时为~3 已设置并验证应用程序设置AzureWebJobsServiceBus
我找到了解决办法。我正在使用服务总线队列。因此,我不应该使用QueueTrigger,而应该使用ServiceBusTrigger。将代码更改为以下选项可修复此问题:

[FunctionName("PublishImage")]
public static async Task Run(
    [ServiceBusTrigger("publishimage")]string message,
    ILogger log)
{
    log.LogInformation($"Started to publish image: {message}");
}

是的,您混淆了Azure服务总线和Azure存储队列。QueueTrigger用于存储队列,ServiceBustigger用于服务总线