Использование клиента обнаружения 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 под экземпляром