仅当我使用Azure门户编辑器时,才会发生此问题。如果我从Visual Studio上传,则不会发生此问题,但是由于以下不相关的错误,我无法从Visual Studio上传:Azure Functions - only use connection string in Application Settings in cloud for queue trigger。
使用Azure门户编辑器时,如果我从C#引发异常或从JavaScript使用context.done(error)
,Application Insights会显示发生了错误,但是消息只是被消耗掉了。该邮件不会重试,也不会进入中毒队列。
从Visual Studio上传时,C#的相同代码可以正确重试,因此我认为这是一个配置问题。我尝试将Azure Portal Editor版本的host.json文件修改为:
{
"queues": {
"visibilityTimeout": "00:00:15",
"maxDequeueCount": 5
}
}
,但该消息仍在消耗而不是被重试。如何解决此问题,以便在使用Azure门户编辑器进行编码时可以重试消息?
注意:
在JavaScript中,context.bindingData.dequeueCount
返回0
。
Azure Function运行时版本:1.0.11913.0 (~1)
。
我正在使用“消费应用计划”。
答案 0 :(得分:0)
我正在使用Azure门户编辑器中的手动触发器,该触发器与在队列中创建消息的行为不同。当我将消息放入队列时,Azure函数按预期工作。
答案 1 :(得分:0)
对于本地开发,如果您的函数是异步的,请使用 Task
作为返回类型。
public async Task Run
而不是void
:
public async void Run