Использование клиента обнаружения Steeltoe в консольном приложении.NET Core (Spring Cloud Config)

В этой теме я смог настроить мое простое консольное приложение, используя систему конфигурации ASP.NET CORE.

Код так же прост, как:

static void Main(string[] args)
{
    string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

    var configuration = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .AddJsonFile($"appsettings.{environment}.json", optional: false)
        .AddEnvironmentVariables();

    config = configuration.Build();


    var serviceProvider = new ServiceCollection()
        .AddSingleton<IConfiguration>(config)
        .AddDiscoveryClient(config)
        .BuildServiceProvider();

    Console.WriteLine(config["Test"]);

    Console.Read();
}

Однако, поскольку приложение не использует IApplicationBuilder, я не могу вызвать метод.UseDiscoveryClient(). Я получаю сообщение об ошибке на.AddDiscoveryClient (config):

"Тип клиента обнаружения НЕИЗВЕСТНЫЙ, проверьте конфигурацию"

Есть ли работа вокруг этого? Мы хотели бы поэкспериментировать с использованием консольных приложений на нашем сервере Spring Cloud Config. Если нет возможности сделать это с помощью Steeltoe, не стесняйтесь сообщать об этом другим библиотекам.

2 ответа

Решение

Методы расширения AddDiscoveryClient а также UseDiscoveryClient предназначены для использования с сервисом обнаружения Steeltoe. Появляющееся сообщение об ошибке связано с тем, что Steeltoe не знает, для какого типа реестра служб ваше приложение должно быть клиентом (например, "тип клиента НЕИЗВЕСТЕН").

Вы хотите получить доступ только к серверу Spring Cloud Config, поэтому вам не нужен ни один из этих методов. Вы можете добавить ConfigServerConfigurationProvider в свой конструктор конфигурации с помощью.AddConfigServer,

вы должны добавить «appName» и «hostname» в appsetting.json под экземпляром

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