我试图在Azure Service Bus触发函数中绑定到MessageReceiver,我的目标是处理死信队列消息并完成它们。
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run([ServiceBusTrigger("<topicName>", "<subscriptionName>/$DeadLetterQueue", Connection = "connectionstring")]Message message,
ILogger logger,
MessageReceiver messageReceiver)
{
// TODO: Perform some actions
await messageReceiver.CompleteAsync(message.SystemProperties.LockToken);
}
问题在于它无法绑定到消息接收器类。
Microsoft.Azure.WebJobs.Host:错误索引方法'Function1'。 Microsoft.Azure.WebJobs.Host:无法绑定参数“ receiver”以键入MessageReceiver。确保绑定支持参数类型。如果您使用绑定扩展(例如Azure存储,ServiceBus,Timer等),请确保已在启动代码中调用了扩展的注册方法(例如builder.AddAzureStorage(),builder.AddServiceBus( ),builder.AddTimers()等)。
我为什么绑定失败的任何想法?
答案 0 :(得分:7)
我弄清楚出了什么问题。我使用' receiver '作为MessageReceiver的参数名称。原来,参数名称必须为“ messageReceiver ”。我所看的示例最初使用的是“接收器”,那么这也许已经改变了吗?