fix(lmxproxy): protect probe subscription from ReadAsync teardown, add instance configs

ReadAsync internally subscribes/unsubscribes the same ScanTime tag used
by the persistent probe, which was tearing down the probe subscription
and triggering false reconnects every ~5s. Guard UnsubscribeInternal and
stored subscription state so the probe tag is never removed by other
callers. Also removes DetailedHealthCheckService (redundant with the
persistent probe), adds per-instance config files (appsettings.v2.json,
appsettings.v2b.json) loaded via LMXPROXY_INSTANCE env var so deploys
no longer overwrite port settings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joseph Doherty
2026-03-24 12:20:05 -04:00
parent 95168253fc
commit 73fe618953
11 changed files with 39 additions and 242 deletions

View File

@@ -10,10 +10,12 @@ namespace ZB.MOM.WW.LmxProxy.Host
{
static int Main(string[] args)
{
// 1. Build configuration
// 1. Build configuration (instance override file loaded from LMXPROXY_INSTANCE env var)
var instance = Environment.GetEnvironmentVariable("LMXPROXY_INSTANCE");
var configuration = new ConfigurationBuilder()
.SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: false)
.AddJsonFile($"appsettings.{instance}.json", optional: true, reloadOnChange: false)
.AddEnvironmentVariables()
.Build();