diff --git a/src/BuildFlow.Host/Program.cs b/src/BuildFlow.Host/Program.cs index 6e7f7b9..af62dc8 100644 --- a/src/BuildFlow.Host/Program.cs +++ b/src/BuildFlow.Host/Program.cs @@ -2,6 +2,7 @@ using BuildFlow.Host; using BuildFlow.Host.Configuration; using OpenTelemetry.Logs; using Winton.Extensions.Configuration.Consul; +using Winton.Extensions.Configuration.Consul.Parsers; var builder = WebApplication.CreateBuilder(args); @@ -27,6 +28,10 @@ builder.Configuration.AddConsul( if (!string.IsNullOrEmpty(consulToken)) co.Token = consulToken; }; + // 用 SimpleConfigurationParser:每个 Consul KV 的 value 作为字符串值(非 JSON)。 + // 默认 ConvertConsulKVPairToConfig 把 Consul key 路径(去 buildflow/ 前缀,/ 转 :)作为 IConfiguration key, + // 如 buildflow/Jwt:SigningKey → 配置 Jwt:SigningKey,value 直接是密钥字符串。 + options.Parser = new SimpleConfigurationParser(); options.Optional = true; // Consul 不可用不阻断启动,回退本地 appsettings options.ReloadOnChange = true; // KV 变更自动刷新 IConfiguration(热重载基础) options.OnLoadException = ex => ex.Ignore = true; // 容错:Consul 抖动不影响应用