Узнайте хостинг Uri при самостоятельном хостинге JobHost

Я пытаюсь самостоятельно принять JobHost с помощью Microsoft.Azure.WebJobs и включая расширение Http, но я не могу понять, на каком Uri/ порту он находится

Это мой основной метод:

static void Main(string[] args)
{
    var config = new JobHostConfiguration();

    var filter = new LogCategoryFilter();
    filter.DefaultLevel = LogLevel.Trace;

    config.LoggerFactory = new LoggerFactory()
        .AddConsole(filter.Filter);

    var httpExtensionConfiguration = new HttpExtensionConfiguration();
    config.UseHttp(httpExtensionConfiguration);


    if (config.IsDevelopment)
    {
        config.UseDevelopmentSettings();
    }

    var host = new JobHost(config);
    host.RunAndBlock();
}

а вот окно вывода при запуске

введите описание изображения здесь

1 ответ

Решение

Хотя расширение HTTP добавит необходимые привязки, службы и функции HTTP, оно не предоставляет прослушиватель, поэтому он не будет настраивать хост для вас (он полагается на внешнее прослушивание, которое вам нужно настроить).

В среде выполнения функций Azure сам WebHost является слушателем. CLI использует эту реализацию для раскрутки хоста и предоставления функций HTTP. Вы можете увидеть этот подход здесь:

https://github.com/Azure/azure-functions-cli/blob/f0e8121c51569d8d0551fbb9bb81fbed5a9ad64c/src/Azure.Functions.Cli/Actions/HostActions/StartHostAction.cs#L102-L112

У вас может быть более простой подход, если вы не хотите полагаться на Script WebHost (CLI использует многие из его функций, поэтому он имеет смысл), просто предоставляя ваше приложение непосредственно при сборке хоста. Вы можете посмотреть на Startup класс, предоставляемый CLI, чтобы увидеть, как все регистрируется и настраивается с использованием последних битов:

https://github.com/Azure/azure-functions-cli/blob/ff45a85c462c6f1e83e04dcba13da8bcca7099c5/src/Azure.Functions.Cli/Actions/HostActions/StartHostAction.cs#L349-L374

ПРИМЕЧАНИЕ. Используемая вами версия расширения, а также код, которым я поделился, являются предварительной версией (или даже не объединены), поэтому они могут быть изменены, но это направление, в котором мы движемся.

Другие вопросы по тегам