variabili-ambiente-dotnetcore

Impostazione delle variabili d’ambiente per ASP.NET Core

ASP.NET Core utilizza la variabile d’ambiente ASPNETCORE_ENVIRONMENT per determinare l’ambiente di esecuzione corrente. I valori predefiniti che questa variabile può assumere sono Development, Staging oppure Production. Inoltre è possibile personalizzarne il valore con uno custom. Le variabili d’ambiente sono case insensitive.

WebHostBuilder è l’oggetto che consente di determinare l’ambiente in cui l’applicazione è in esecuzione. Per poter recuperare il contesto attuale è possibile utilizzare IHostingEnvironment , in modo da poter determinare un comportamento specifico in base all’ambiente. Ad esempio, nell’ambiente Production l’applicazione potrebbe abilitare la minimizzazione delle risorse, mentre in Development non eseguire nessuna particolare ottimizzazione.

ASP.NET Core può essere eseguito su Windows, OSX e Linux e la configurazione della variabile d’ambiente può essere effettuata all’interno del sistema operativo, utilizzando Visual Studio o utilizzando Visual Studio Code.

Per poter verificare il valore della variabile ASPNETCORE_ENVIRONMENT , è possibile analizzare l’output del comando:

che visualizza nelle prime righe il tipo di Hosting Environment.

E’ possibile consultare la documentazione aggiornata sulle variabili d’ambiente è consultabile qui.

Modificare la variabile d’ambiente in Visual Studio

Utilizzando Visual Studio  è possible configurare la variabile d’ambiente in modo da impostarla all’interno dei diversi steps di esecuzione (ad esempio nelle fasi di debug). Quando viene creata un’applicazione ASP.NET Core viene aggiunto al progetto il file launchSettings.json . Il formato del file è il json, che ha una maggiore flessibilità rispetto al formato xml utilizzato nelle versioni precedenti. All’interno del file vengono create delle sezioni corrispondenti alle singole configurazioni. Ogni sezione contiene al suo interno il valore di ASPNETCORE_ENVIRONMENT .

Nell’esempio sono presenti due configurazioni, una denominata IIS Express ed una denominata TestApp. Ciascuna configurazione imposta con un valore differente la variabile (in entrambi i casi Development).

In Visual Studio Code esiste un file equivalente che prende il nome di launch.json che viene creato al primo debug dell’applicazione. La configurazione della variabile d’ambiente avviene all’interno della sezione denominata “.NET Core Launch (web)”:

All’interno di questa sezione è possibile impostare variabili d’ambiente aggiuntive, aggiungendo i valori sotto forma di chiave:valore all’interno della sezione env.

A volte potrebbe essere necessario impostare le variabili d’ambiente passandole alla riga di comando: utilizzando il metodo ConfigurationBuilder e AddComandLine è possibile passare i parametri direttamente dalla linea di comando.

Per poter abilitare questa funzionalità è necessario includere  il pacchetto Microsoft.Extensions.Configuration.CommandLine. La nuova funzione consente di passare il parametro della variabile d’ambiente nel seguente modo:

Quelle descritte in precedenza sono solo alcune delle modalità di configurazione delle variabili d’ambiente in .NET Core. La lettura delle variabili d’ambiente avviene durante l’avvio dell’applicazione: è quindi necessario effettuare il riavvio per poter utilizzare (ad esempio del server Kestrel).

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.