Веб-задания Azure не находят функций - PullRequest
0 голосов
/ 05 февраля 2019

Program.cs:

    public static void Main(string[] args)
    {
        var builder = new HostBuilder()
            .ConfigureLogging((context, b) =>
            {
                b.SetMinimumLevel(LogLevel.Debug);
                b.AddConsole();
            })
            .UseConsoleLifetime();

        var host = builder.Build();
        using (host)
        {
           host.Run();
        }
    }

Functions.cs:

public class Functions
{
    private readonly ISampleServiceA _sampleServiceA;
    private readonly ISampleServiceB _sampleServiceB;

    public Functions(ISampleServiceA sampleServiceA, ISampleServiceB sampleServiceB)
    {
        _sampleServiceA = sampleServiceA;
        _sampleServiceB = sampleServiceB;
    }

    public static void RunSomething([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger log) // every one minute
    {
        if (myTimer.IsPastDue)
        {
            log.LogInformation("Timer is running late!");
        }
        log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
    }
}

Когда я запускаю, я получаю:

dbug: Microsoft.Extensions.Hosting.Internal.Host[1]
      Hosting starting
dbug: Microsoft.Extensions.Hosting.Internal.Host[2]
      Hosting started

Я прочиталНесколько примеров, и у меня сложилось впечатление, что при создании нового консольного приложения, ссылках на требуемые сборки и в том числе на вышеперечисленных, WebJob должен «просто работать».Я опустил некоторые важные настройки?

Версии:

enter image description here

1 Ответ

0 голосов
/ 05 февраля 2019

Вам не хватает AddTimers () в конфигурации, поскольку это функция запуска по времени.

Пожалуйста, установите пакет Microsoft.Azure.WebJobs.Extensions для вашего проекта, затем в вашем program.cs -> Main метод: добавьте AddTimersк конфигурации webjob, как показано ниже:

                var builder = new HostBuilder()
                .ConfigureWebJobs(
                b =>
                {
                    b.AddTimers();
                    //other configure
                })
                .ConfigureLogging((context, b) =>
                {
                    b.SetMinimumLevel(LogLevel.Debug);
                    b.AddConsole();
                })
                // your other configure
                .UseConsoleLifetime();

Вы также можете обратиться к моему предыдущему ответу для получения дополнительной конфигурации для webjob 3.x.

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