Docker Ocelot找不到重路由文件

Docker Ocelot找不到重路由文件,docker,microservices,ocelot,Docker,Microservices,Ocelot,我正试图构建自己的微服务体系结构,但我仍停留在API.Gateway部分。 我正在尝试使Ocelot V14在.sln文件中查找所有配置Ocelot.json或配置.json文件 在Program.cs文件中,我试图将配置文件与此链接中的以下代码合并 问题是它是空的,并且重路由不起作用。当我将所需的重路由粘贴到这个ocelot.json文件中时,重路由工作正常,这不是我想要的功能 我想要的是从不同的.json文件自动合并配置文件 任何帮助都将不胜感激 eShopContainers如何通过Oc

我正试图构建自己的微服务体系结构,但我仍停留在API.Gateway部分。 我正在尝试使Ocelot V14.sln文件中查找所有配置Ocelot.json或配置.json文件

Program.cs文件中,我试图将配置文件与此链接中的以下代码合并

问题是它是空的,并且重路由不起作用。当我将所需的重路由粘贴到这个ocelot.json文件中时,重路由工作正常,这不是我想要的功能

我想要的是从不同的.json文件自动合并配置文件

任何帮助都将不胜感激

eShopContainers如何通过Ocelot V12实现此功能

        IWebHostBuilder builder = WebHost.CreateDefaultBuilder(args);
        builder.ConfigureServices(s => s.AddSingleton(builder))
            .ConfigureAppConfiguration(ic => ic.AddJsonFile(Path.Combine("configuration", "configuration.json")))
            .UseStartup<Startup>();
IWebHostBuilder=WebHost.CreateDefaultBuilder(args);
builder.ConfigureServices(s=>s.AddSingleton(builder))
.ConfigureAppConfiguration(ic=>ic.AddJsonFile(Path.Combine(“configuration”,“configuration.json”))
.UseStartup();

如果您需要更多的代码、文件结构或其他任何东西,只需评论和询问。

不确定这是否是您要寻找的?这是Ocelot将多个路由文件合并在一起的方式

我们不使用这一点,但这是我们如何定义我们的启动:

var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                .AddJsonFile(this.env.IsDevelopment() ? "ocelot.json" : "ocelot.octopus.json")
                .AddEnvironmentVariables();
因此,我们有标准的appSettings和Ocelot,Octopus将在Ocelot实例部署到测试/生产环境(或仅测试/本地环境)时转换我们想要的各种变量

这似乎是定义如何处理多个文件的位:

在这种情况下,Ocelot将查找与该模式匹配的任何文件 (?i)ocelot.([a-zA-Z0-9]*).json,然后将它们合并在一起。如果你 要设置GlobalConfiguration属性,必须有一个文件 名为ocelot.global.json

不确定是否需要显式定义每个文件(除非它们可以通过{env.EnvironmentName}之类的变量定义),但这应该很容易测试

对不起,如果我把棍子的一端弄错了,希望这能有所帮助

        IWebHostBuilder builder = WebHost.CreateDefaultBuilder(args);
        builder.ConfigureServices(s => s.AddSingleton(builder))
            .ConfigureAppConfiguration(ic => ic.AddJsonFile(Path.Combine("configuration", "configuration.json")))
            .UseStartup<Startup>();
var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                .AddJsonFile(this.env.IsDevelopment() ? "ocelot.json" : "ocelot.octopus.json")
                .AddEnvironmentVariables();