Lo sviluppo per la piattaforma di Windows Azure è orientato a tutte le tecnologie, ma il supporto a quelle Microsoft, e in particolare al .NET Framework e a Visual Studio 2010 è sicuramente un punto a favore nella scelta del framework e del linguaggio da usare.
Fra gli automatismi che si hanno a disposizione vi è la semplicità di collegare un'applicazione ASP.NET web form o MVC ad un web role, così da poter confezionare il pacchetto di deployment od eseguire direttamente la messa online sul cloud. Nonostante il supporto di Visual Studio fornisca solamente una relazione un sito -> un web role, in realtà è possibile sfruttare più site all'interno di uno stesso web role. Poiché quest'ultimo si tratta di una configurazione di una macchina virtuale Windows Server 2008 con IIS, è possibile sfruttare caratteristiche come virtual directory, virtual application o multi site.
Una volta configurato un site e il relativo web role, è possibile procedere a modificare il file csdef, presente all'interno del progetto di Visual Studio per Azure. Il file di definizione contiene principalmente i ruoli, per ognuno di essi i siti e a loro volta i binding da esporre attraverso gli endpoint.
Non resta quindi che duplicare il tag Site e cambiare il nome e l'endpoint di ascolto. Oltre a questo è necessario specificare l'attributo physicalDirectory con il percorso relativo alla cartella del progetto ASP.NET Visual Studio. Nell'esempio seguente si impostano due siti, ognungo dei quali utilizza due endpoint che ascoltano su due porte differenti: la 80 e la 81.
<ServiceDefinition name="CommunityAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WebRole name="ASPItalia.com" vmsize="Small"> <Sites> <Site name="ASPItalia" physicalDirectory="..\ASPItalia.com"> <Bindings> <Binding name="ASPItaliaEndpoint" endpointName="Endpoint80" /> </Bindings> </Site> <Site name="WinFXItalia" physicalDirectory="..\WinFXItalia.com"> <Bindings> <Binding name="WinFXItaliaEndpoint" endpointName="Endpoint81" /> </Bindings> </Site> </Sites> <Endpoints> <InputEndpoint name="Endpoint80" protocol="http" port="80" /> <InputEndpoint name="Endpoint81" protocol="http" port="81" /> </Endpoints> <Imports> <Import moduleName="Diagnostics" /> </Imports> </WebRole> </ServiceDefinition>
Sul binding è possibile in alternativa utilizzare lo stesso endpoint, ma specificare con l'attributo hostHeader il dominio di ascolto. Nell'esempio precedente, impotizzando che il file csdef si trovi nella cartella c:\MyProjects\CommunityAzure\, si va specificare di recuperare i due site dalle cartelle c:\MyProjects\ASPItalia.com e c:\MyProjects\WinFXItalia.com.
E' chiaro che, utilizzando più site su una stessa role si vanno a suddividere le risorse che la macchina virtuale a disposizione, e quindi potenzialmente creando problemi di prestazioni con siti ad alti carichi.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Aggiungere interattività lato server in Blazor 8
Migliora le tue soluzioni ASP.NET Core con Azure OpenAI
Semplificare il deployment di siti statici con Azure Static Web App
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Eseguire query verso tipi non mappati in Entity Framework Core
Eseguire le GitHub Actions offline
Utilizzare QuickGrid di Blazor con Entity Framework
Migliorare la sicurezza dei prompt con Azure AI Studio
.NET Conference Italia 2023
I più letti di oggi
- Microsoft annuncia Windows "TrustBridge"
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Estrarre dati randomici da una lista di oggetti in C#
- Usare il colore CSS per migliorare lo stile della pagina
- Una attached property per accedere a NavigationService da ViewModel in Silverlight 4.0