我检查doc,使用下面的代码将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
方法不可用,即使添加了服务总线触发功能,它也总是报告未找到作业功能错误。
那么配置错误在哪里,谢谢您的帮助。
答案 0 :(得分:0)
根据我的经验,当您创建webjob时,您没有使用正确的软件包。如果选中service bus binding doc,则会发现它需要Microsoft.Azure.WebJobs.Extensions.ServiceBus
来提供服务总线绑定。
在我的测试下,您需要以下软件包:
使用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();
}
}
Function.cs
public static void processservicebus(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection")]string myQueueItem,
ILogger log)
{
log.LogInformation(myQueueItem);
}
希望这可以为您提供帮助,如果仍然有其他问题,请随时告诉我。