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
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Sfruttare lo streaming di una chiamata Http da Blazor
Eseguire operazioni con timeout in React
Assegnare un valore di default a un parametro di una lambda in C#
Eseguire le GitHub Actions offline
Generare file PDF da Blazor WebAssembly con iText
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Utilizzare Model as a Service su Microsoft Azure
Semplificare il deployment di siti statici con Azure Static Web App
Migrare una service connection a workload identity federation in Azure DevOps
Migrate and Modernize your .NET Applications on Azure
Eseguire operazioni sui blob con Azure Storage Actions