Azure WebJobs, поймать ошибку, чтобы предотвратить сбой хоста - PullRequest
0 голосов
/ 19 февраля 2020

Предположим простую HostBuilder конфигурацию, как описано здесь .

Просто так:

static async Task Main()
{
    var builder = new HostBuilder();
    builder.ConfigureWebJobs(b => b
           .AddAzureStorageCoreServices()
           .AddAzureStorage()
           .AddTimers())
    var host = builder.Build();
    using (host)
    {
        await host.RunAsync();
    }
}

Кажется, что в некоторых ситуациях могут возникать исключения, не внутри функций QueueTrigger или TimerTrigger напрямую (они корректно перехватываются), а в глобальной области видимости. Некоторые из них, которые я уже заметил, были HTTP 409 Conflict откликами, TimeoutException поднял и т. Д. c (они, кажется, происходят прямо перед входом в настоящую функцию, например, при доступе к очереди для чтения сообщений). И все приложение хоста закрыто. Webjob нужно перезапустить, а я этого не хочу. Дело в том, что я не хочу решать эти специфические c проблемы здесь.

Как я могу поймать исключение и предотвратить разрушение хоста? Кажется, что я могу даже не пытался поймать await host.RunAsync(), catch не сработало. Я добавил Logging непосредственно перед запуском хоста и внутри catch; Через некоторое время у меня появилось несколько журналов «Запуск ...», но не было журнала «Произошла ошибка».

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