Quando si approccia a Windows Azure, soprattutto utilizzando i template per Visual Studio, si tende a sviluppare web e worker role separatamente, come suggerito quando si creano nuovi progetti. Sebbene sia utile per separare logicamente i componenti e per essere pronti per scalare in modo migliore, una soluzione con due ruoli, comporta almeno due istanze, e questo può essere d'ostacolo a progetti piccoli con disponibilità economiche limitate.
In realtà un web role, così come il worker role, dispone di un RoleEntryPoint, nel quale, oltre al metodo OnStart, possiamo sovrascrivere il metodo Run, così come faremmo nel worker role. Normalmente tale metodo non esce fino a quando OnStop, sempre del ruolo, non viene chiamato. Possiamo sovrascrivere questo metodo per eseguire attività di schedulazione, o dei loop infiniti, come nell'esempio seguente.
public class WebRole : RoleEntryPoint
{
private bool cancel;
public override void Run()
{
// Continuo fino a quando OnStop non viene chiamato
while (!cancel)
{
// TODO: faccio qualcosa
// Aspetto un minuto
Thread.Sleep(TimeSpan.FromMinutes(1));
}
}
public override void OnStop()
{
base.OnStop();
cancel = true;
}
}In questo modo, oltre ai siti web, possiamo anche eseguire attività tipiche dei servizi, il tutto in un'unica istanza.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare l nesting nativo dei CSS
Aggiornare a .NET 9 su Azure App Service
Recuperare App Service cancellati su Azure
Gestione ciclo di vita in .NET Aspire
Controllare la telemetria con .NET Aspire
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Montare Azure Blob Storage su Linux con BlobFuse2
Eseguire query in contemporanea con EF
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Utilizzare DeepSeek R1 con Azure AI
Configurare OpenAI in .NET Aspire
Analizzare il contenuto di una issue con GitHub Models e AI
I più letti di oggi
- September CTP per Longhorn Server
- Windows 8 Developer Event e Lab - Milano
- Microsoft Security Bulletin MS04-040
- Blazor Conference 2020 Live - Online
- .NET Conference Italia 2025 - Milano
- The Agentic Day - Milano
- Generare file per il download da Blazor WebAssembly
- Una classe Comparer per ordinare le collection con Generics


