Azureservicebus 如何创建服务总线触发器webjob?

Azureservicebus 如何创建服务总线触发器webjob?,azureservicebus,azure-webjobs,Azureservicebus,Azure Webjobs,我选择使用下面的代码配置webjob以创建服务总线触发功能 static void Main() { var builder = new HostBuilder(); builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); b.AddServiceBus(sbOptions => { sbOptions.Me

我选择使用下面的代码配置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
方法不可用,甚至添加了服务总线触发函数,它总是报告未找到作业函数错误


那么,配置错误在哪里,谢谢您的帮助。

根据我的经验,当您创建webjob时,您没有使用正确的软件包。如果您检查,您会发现它需要
Microsoft.Azure.WebJobs.Extensions.ServiceBus
来提供服务总线绑定

根据我的测试,以下软件包是您需要的:

  • Microsoft.Azure.WebJobs(>=3.0.10)
  • Microsoft.Azure.WebJobs.Extensions
  • Microsoft.Azure.WebJobs.Extensions.ServiceBus
  • Microsoft.Azure.WebJobs.ServiceBus
  • 使用
    Microsoft.Azure.WebJobs.Extensions.ServiceBus
    ,您将能够使用
    b.AddServiceBus()
    方法和
    Microsoft.Azure.WebJobs.ServiceBus
    创建
    ServiceBusTrigger
    功能

        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();
        }
    }
    
    下面是我的测试代码,试试看

    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);
        }
    


    希望这能对您有所帮助,如果您还有其他问题,请随时告诉我。

    网络作业与功能不同。Webjob连续轮询您的邮件,并全天候运行。WebJob还可以承载调用的函数。你能详细说明一下你想要实现什么吗?您正在尝试部署函数还是要部署将包含函数的WebJob?我只想创建service bus触发器WebJob。您看过以下文档吗:?这是一个好的开始。