El archivo WebRole.cs ubicado en la estructura de nuestro proyecto WebRole nos ayuda a otorgarle una mayor funcionalidad a nuestra instancia de WebRole en ejecución.
Lo que vamos a encontrar en este archivo es una clase generada automáticamente por Visual Studio, pero que hereda de la clase RoleEntryPoint. Esta clase provee métodos para inicializar, ejecutar y parar una instancia de WebRole, estos métodos pueden ser sobrescritos a según nuestra conveniencia.
- OnStart( ): Corre código que inicializa una instancia de rol.
1234567891011121314151617<span style="color: blue">public</span> <span style="color: blue">class</span> WorkerRole : RoleEntryPoint{<span style="color: blue">public</span> <span style="color: blue">override</span> <span style="color: blue">bool</span> OnStart(){<span style="color: blue">try</span>{<span style="color: green">// Add initialization code here</span>}<span style="color: blue">catch</span> (Exception e){Trace.WriteLine(<span style="color: #a31515">"Exception during OnStart: "</span> + e.ToString());<span style="color: green">// Take other action as needed.</span>}<span style="color: blue">return</span> <span style="color: blue">base</span>.OnStart();}} - Run( ): Corre código mientras la instancia del WebRole está viva.
12345678910111213141516171819<span style="color: blue">public</span> <span style="color: blue">override</span> <span style="color: blue">void</span> Run(){<span style="color: blue">try</span>{Trace.WriteLine(<span style="color: #a31515">"WorkerRole entrypoint called"</span>, <span style="color: #a31515">"Information"</span>);<span style="color: blue">while</span> (<span style="color: blue">true</span>){Thread.Sleep(10000);Trace.WriteLine(<span style="color: #a31515">"Working"</span>, <span style="color: #a31515">"Information"</span>);}<span style="color: green">// Add code here that runs in the role instance</span>}<span style="color: blue">catch</span> (Exception e){Trace.WriteLine(<span style="color: #a31515">"Exception during Run: "</span> + e.ToString());<span style="color: green">// Take other action as needed.</span>}} - OnStop( ): Corre código cuando una instancia de WebRole está por ser parada.
123456789101112<span style="color: blue">public</span> <span style="color: blue">override</span> <span style="color: blue">void</span> OnStop(){<span style="color: blue">try</span>{<span style="color: green">// Add code here that runs when the role instance is to be stopped</span>}<span style="color: blue">catch</span> (Exception e){Trace.WriteLine(<span style="color: #a31515">"Exception during OnStop: "</span> + e.ToString());<span style="color: green">// Take other action as needed.</span>}}
Como verás, gracias a la ayuda de estos tres métodos podemos tener un mayor control sobre lo que sucede durante el ciclo de vida de nuestra instancia de WebRole, si quieres consultar más acerca de la clase RoleEntryPoint puedes consultar en MSDN en el siguiente enlace: Clase RoleEntryPoint
Sigueme en Twitter @vmorenoz
¿Te gustó este artículo? Únete a Facebook en MicrosoftLand