Le Microsoft Azure Web App, così come le API e Mobile App, sono un servizio che ci permette di ospitare il nostro sito internet all'interno di un hosting IIS completamente gestito. Sia che utilizziamo Web Deploy o FTP, lo spazio che ci viene messo a disposizione è parzialmente raggiungibile da IIS attraverso la cartella wwwroot. Le altre cartelle sono riservate a file di log e ai web job, ma ci è consentito anche leggere e scrivere in tutto lo spazio a noi assegnato, per esempio per depositare nostri file (fino ad 1GB per i piani gratuiti).
Per farlo dobbiamo prima di tutto conoscere la struttura delle cartelle, visibile qui https://github.com/projectkudu/kudu/wiki/File-structure-on-azure. Poiché le API di IO necessitano sempre di un percorso assoluto (per evitare di cercare in system32) è opportuno risolvere sempre in modo corretto il percorso. A questo scopo vengono in aiuto le variabili d'ambiente, visibili a questo indirizzo https://github.com/projectkudu/kudu/wiki/Azure-runtime-environment. La più importante è sicuramente la variabile %HOME% che ci indica il percorso completo al livello radice.
In questo script proponiamo due facili funzioni che ci permettono di risolvere il percorso. Esse sono Environment.GetEnvironmentVariable e Environment.ExpandEnvironmentVariables rispettivamente per risolvere una variabile o convertire un percorso risolvendo le variabili che contiene.
var p = Path.Combine(Environment.GetEnvironmentVariable("HOME"), "miaCartella"); var p2 = Environment.ExpandEnvironmentVariables(@"%HOME%\miaCartella"); // p e p2 sono d:\home\miaCartella
In questo modo i percorsi che utilizziamo sono sicuri e al riparo da problemi in caso di cambiamenti da parte di Microsoft. Ricordiamo infine che il file system di cui la Web App dispone, è condiviso tra le molteplici istanze che possiamo avere ed è perciò importante prestare attenzione ad eventuali conflitti.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
.NET Conference Italia 2023
Eseguire attività con Azure Container Jobs
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Routing statico e PreRendering in una Blazor Web App
Creare un'applicazione React e configurare Tailwind CSS
Miglioramenti agli screen reader e al contrasto in Angular
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Usare lo spread operator con i collection initializer in C#
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
What's new in Azure Functions and Extensions
Inizializzare i container in Azure Container Apps
Ottimizzazione dei block template in Angular 17
I più letti di oggi
- Microsoft annuncia Windows "TrustBridge"
- ASP.NET 4.0 in practice
- Migrare una service connection a workload identity federation in Azure DevOps
- ASP.NET 4.0 in C# e VB
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Sblocca le performance della tua applicazione con .NET 8