在 .NET Core 控制台应用程序上使用 Steeltoe Discovery 客户端(Spring 云配置)

Using Steeltoe Discovery Client on .NET Core console application (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):

上收到错误

"Discovery client type UNKNOWN, check configuration"

有解决办法吗?我们想在我们的 Spring Cloud Config 服务器上使用控制台应用程序进行试验。如果没有办法用 Steeltoe 做到这一点,请随时通知其他图书馆。

扩展方法 AddDiscoveryClientUseDiscoveryClient 用于 Steeltoe 服务发现。您看到的错误消息是由于 Steeltoe 不知道您的应用程序应该是哪种类型的服务注册表的客户端(即:"client type UNKNOWN")。

您只想访问 Spring Cloud Config 服务器,因此您不需要这些方法中的任何一种。您可以将 ConfigServerConfigurationProvider 添加到您的配置生成器 with .AddConfigServer