【发布时间】:2020-03-09 03:06:03
【问题描述】:
我正在尝试在不重新启动应用程序的情况下更改 ocelot 配置,并且我不想使用 Consul。 试图寻找简单的解决方案。 我正在尝试什么。
注册配置文件为reloadOnChange:true
public Startup(IHostingEnvironment env)
{
var builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();
builder.SetBasePath(env.ContentRootPath)
.AddJsonFile("configuration.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
并将配置添加为单例
services.AddSingleton<IConfiguration>(Configuration);
还编写了服务,它使我能够使用服务更改此单例配置。
[Route("api/[controller]")]
public class XBConfigurationController : Controller
{
public XBConfigurationController(IConfiguration configuration)
{
_configuration = configuration as IConfigurationRoot;
}
private readonly IConfigurationRoot _configuration;
// GET: /<controller>/
[HttpGet]
public IActionResult Get()
{
_configuration.Reload();
return Ok();
}
}
怎么了? ocelot为什么不刷新它的内部配置?
【问题讨论】:
标签: c# asp.net-core ocelot