【发布时间】:2026-02-04 03:05:01
【问题描述】:
我正在使用 Visual Studio 2017 在本地 Azure Functions v1 中开发服务总线触发器。我想测试官方文档中的 example,而不必在服务总线中添加消息。所以我通过 Postman 在端点 POST http://localhost:7071/admin/functions/ServiceBusQueueTriggerCSharp 和正文 { "input": "foo" } 触发它。
这会失败并出现脚本主机错误:执行函数时出现异常:ServiceBusQueueTriggerCSharp。 Microsoft.Azure.WebJobs.Host:出现一个或多个错误。异常绑定参数“deliveryCount”。 Microsoft.Azure.WebJobs.Host:绑定数据不包含预期值“deliveryCount”。
我尝试删除 deliveryCount 参数,但在 enqueueTimeUtc 处失败。删除它也有效。有没有办法保留这些参数并在本地测试函数?
我知道这两个参数在通过 HTTP 触发时没有多大意义,但它们可以被赋予默认值。 messageId 有一个非零值。
参考示例:
[FunctionName("ServiceBusQueueTriggerCSharp")]
public static void Run(
[ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "ServiceBusConnection")]
string myQueueItem,
Int32 deliveryCount, // this fails
DateTime enqueuedTimeUtc, // this fails too
string messageId,
TraceWriter log)
{
log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
log.Info($"EnqueuedTimeUtc={enqueuedTimeUtc}");
log.Info($"DeliveryCount={deliveryCount}");
log.Info($"MessageId={messageId}");
}
【问题讨论】:
标签: azure azure-functions