diff --git a/MP.RIOC/MP.RIOC.csproj b/MP.RIOC/MP.RIOC.csproj index 12a3a6a1..2b28390d 100644 --- a/MP.RIOC/MP.RIOC.csproj +++ b/MP.RIOC/MP.RIOC.csproj @@ -5,7 +5,7 @@ enable enable MP.RIOC - 8.16.2606.1216 + 8.16.2606.1217 InProcess diff --git a/MP.RIOC/Program.cs b/MP.RIOC/Program.cs index f2fd466a..b122a104 100644 --- a/MP.RIOC/Program.cs +++ b/MP.RIOC/Program.cs @@ -12,8 +12,17 @@ using System.Reflection; var builder = WebApplication.CreateBuilder(args); -// recupero env corrente +// RECUPERO L'AMBIENTE REALE (Che ora IIS passa correttamente come 'Staging') var env = builder.Environment; + +// FORZA IL CARICAMENTO CORRETTO DEI JSON CON LA GERARCHIA DI AMBIENTE +builder.Configuration + .SetBasePath(env.ContentRootPath) + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true) + .AddEnvironmentVariables(); + +// recupero env corrente var logger = LogManager.Setup() .LoadConfigurationFromAppSettings() .GetCurrentClassLogger(); @@ -60,23 +69,35 @@ builder.Services.AddDbContextFactory(options => builder.Services.AddIocDataLayer(); // 1. Configurazione dell'invoker personalizzato (Risolve i tuoi errori) +// 1. Configurazione dell'invoker personalizzato (Potenziato con il Pooling) var httpClientInvoker = new HttpMessageInvoker(new SocketsHttpHandler { UseProxy = false, AllowAutoRedirect = false, AutomaticDecompression = DecompressionMethods.None, UseCookies = false, - // Correzione per il tracing: usa il propagatore corrente di sistema ActivityHeadersPropagator = DistributedContextPropagator.Current, ConnectTimeout = TimeSpan.FromSeconds(60), - // Gestione certificato (ignora errori per localhost/test) + // ================================================================== + // 🚀 LE TRE RIGHE PER ABBATTERE IL MURO DEI 2 SECONDI SOTTO STRESS + // ================================================================== + // Permette a YARP di aprire fino a 5000 canali paralleli contemporanei verso IIS + MaxConnectionsPerServer = 5000, + + // Tiene caldi i socket ed evita di rifare l'handshake TCP/TLS a ogni richiesta + PooledConnectionLifetime = TimeSpan.FromMinutes(15), + PooledConnectionIdleTimeout = TimeSpan.FromMinutes(2), + // ================================================================== + + // Gestione certificato (Invariata) SslOptions = new System.Net.Security.SslClientAuthenticationOptions { RemoteCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true } }); +// Registrazione nella Dependency Injection (Invariata) builder.Services.AddSingleton(httpClientInvoker); builder.Services.AddHttpForwarder(); diff --git a/MP.RIOC/Resources/ChangeLog.html b/MP.RIOC/Resources/ChangeLog.html index b0206033..aa4396fe 100644 --- a/MP.RIOC/Resources/ChangeLog.html +++ b/MP.RIOC/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MP-RIOC -

Versione: 8.16.2606.1216

+

Versione: 8.16.2606.1217


Note di rilascio: