Как создать сервисный триггер триггера? - PullRequest
1 голос
/ 31 октября 2019

Я проверяю doc , используйте приведенный ниже код для настройки веб-задания для создания функции запуска служебной шины.

    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недоступен, даже добавьте функцию запуска служебной шины, о которой она всегда сообщает Функции задания не найдены ошибка.

Так где же ошибка конфигурации, спасибо за любую помощь.

1 Ответ

0 голосов
/ 31 октября 2019

По моему опыту, когда вы создаете веб-работу, вы не используете правильный пакет. Если вы проверите документ привязки служебной шины , то вам потребуется Microsoft.Azure.WebJobs.Extensions.ServiceBus для предоставления привязок служебной шины.

И в моем тесте вам понадобятся следующие пакеты:

  1. Microsoft.Azure.WebJobs (> = 3.0.10)
  2. Microsoft.Azure.WebJobs.Extensions
  3. Microsoft.Azure.WebJobs.Extensions.ServiceBus
  4. Microsoft.Azure.WebJobs.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);
    }

enter image description here

Надеждаэто может помочь вам, если у вас все еще есть другие проблемы, пожалуйста, дайте мне знать.

...