La nascita della vita

di Cristian Civera, in .NET,

Eh no, mi dispiace, non è filosofico questo post. Sto parlando della vita di un'applicazione web! :-D
Oggi discutevo col mio collega di come sarebbe utile poter scegliere quale web.config caricare o differenziare le sezioni a seconda della macchina. Capita spesso di sviluppare sulla propria macchina e di dover effettuare il deployment temporaneo dell'applicazione per tenere aggiornarto il cliente. Trovo molto scomodo ogni volta differenziare alcune impostazioni di web.config di cui faccio largo uso.
Va beh, lasciando stare questo aspetto mi è venuto in mente la proprietà ConfigurationFile della classe AppDomainSetup e sono andato a naufragare tra le classi.
C'è una classe AppDomainFactory che non usa nessuno, ma che implementa una interfaccia COM. Non è ho la certezza, ma ci scometto che il worker process ASP.NET chiama il metodo Create di questa interfaccia per creare l'AppDomain. Ogni AppDomain conterrà ogni singola applicazione web e garantirà l'isolamento dalle altre anche nello stesso processo.
Se guardiamo, troviamo queste interessanti righe di codice:

      setup.PrivateBinPath = "bin";
      setup.PrivateBinPathProbe = "*";
      setup.ShadowCopyFiles = "true";
      setup.ApplicationBase = AppDomainFactory.MakeFileUrl(appPath, true);
      setup.ApplicationName = appName;
      setup.ConfigurationFile = "web.config";
      setup.DisallowCodeDownload = true;

Ecco come funziona. Peccato che non si possa modificare niente e abbiamo usato impostazioni fisse.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese