Le app sviluppate in ASP.NET Core dispongono di un nuovo sistema di lettura delle configurazioni che in parte si poggia anche sulle variabili d'ambiente. Un provider che preleva chiavi disponibili dalle variabili d'ambiente, disponibili poi con IConfiguration, viene infatti automaticamente installato. Le stesse sono inoltre utili per cambiare l'ambiente di esecuzione di ASP.NET Core. La chiave ASPNETCORE_ENVIRONMENT, in particolare, è utile per scegliere switch di Production, Development o altro, e ci permette di cambiare il comportamento del nostro applicativo. Per esempio, impostandolo su Development, possiamo abilitare il middleware che mostra i dettagli su eventuali errori che si possono verificare, e lo stesso flag è utile per apportare altri cambiamenti.
Quando distribuiamo il nostro applicativo su una Web App di Microsoft Azure, insieme al nostro applicativo, comprensivo di tutte le dll, troviamo automaticamente anche il file web.config, cioè la configurazione di IIS affinché questo possa effettuare da reverse proxy e inoltrare le richieste HTTP a Kestrel, cioè il web server di ASP.NET Core. Grazie al modulo che mantiene in vita il processo, possiamo anche cambiare le variabili d'ambiente. E' sufficiente modificare il file web.config tramite gli strumenti possibili (FTP, PowerShell, Kudu, Visual Studio) come segue per poter passare in modalità sviluppo.
<configuration> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout"> <environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables> </aspNetCore> </system.webServer> </configuration>
Da questo momento l'applicativo riparte prendendo la nuova variabile d'ambiente ed eventuali pagine di errore mostreranno i dettagli. Questa impostazione va usata con cautela dato che non è opportuno dare questo genere di informazioni agli utenti.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Utilizzare Hybrid Cache in .NET 9
Supportare la sessione affinity di Azure App Service con Application Gateway
Gestire i dati con Azure Cosmos DB Data Explorer
Rendere le variabili read-only in una pipeline di Azure DevOps
Gestione CSS in Blazor con .NET 9
Migliorare la sicurezza dei prompt con Azure AI Studio
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub