我检查doc https://learn.microsoft.com/en-us/azure/app-service/webjobs-sdk-how-to#service-bus-trigger-configuration-version-3x使用以下代码配置 webjob 以创建服务总线触发功能。
static void Main()
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus(sbOptions =>
{
sbOptions.MessageHandlerOptions.AutoComplete = true;
sbOptions.MessageHandlerOptions.MaxConcurrentCalls = 16;
});
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
然而,当我尝试实现它时,AddServiceBus
方法不可用,即使添加它总是报告的服务总线触发功能未找到工作职能 error.
请问哪里配置错误,谢谢各位帮忙。
根据我的经验,当您创建网络作业时,您没有使用正确的包。如果您检查服务总线绑定文档 https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus#packages---functions-2x,你会发现需要Microsoft.Azure.WebJobs.Extensions.ServiceBus
提供服务总线绑定。
根据我的测试,您需要以下软件包:
- Microsoft.Azure.WebJobs(>= 3.0.10)
- Microsoft.Azure.WebJobs.扩展
- Microsoft.Azure.WebJobs.Extensions.ServiceBus
- Microsoft.Azure.WebJobs.ServiceBus
With Microsoft.Azure.WebJobs.Extensions.ServiceBus
,您将能够使用b.AddServiceBus()
方法和与Microsoft.Azure.WebJobs.ServiceBus
创造ServiceBusTrigger
功能。
下面是我的测试代码,大家试试吧。
public static void Main(string[] args)
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
});
var host = builder.Build();
using (host)
{
host.Run();
}
}
函数.cs
public static void processservicebus(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection")]string myQueueItem,
ILogger log)
{
log.LogInformation(myQueueItem);
}
希望这可以帮助您,如果您还有其他问题,请随时告诉我。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)